Hello, I know this is an old thread, but it came up when I googled the assertion.
I had the same assertion. I made it go away by using the C++ operator "new" to allocate the b2World object pointer. I was using malloc before
. Guess what, I'm a C++ newbie. Depending on what I did with the world object, I was also getting the error message:
test2012(5487,0xa06a1540) malloc: *** error for object 0x4c1f4c4: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
I guess that has fixed it. So next time someone complains about the assert, you can tell them not to be such a douche and use new instead of malloc.
Added info for random Googlers: I'm using Box2D in Xcode for ios. That's why I'm having to store a pointer, rather than just have the b2World as a normal member variable in a C++ class. Objective C++ only allows you to have a C++ class member variable in an objective C class if the C++ class has a default constructor (b2World doesn't have one), but there is no such restriction on pointers
to C++ classes.