This is so similar to memory address 0xBAADF00D that it's clearly just BAADF00D with a small value added to it.
0xBAADF00D is used by the MS compiler in debug mode to indicate uninitialised allocated heap memory; memory that you have allocated using malloc but haven't actually done anything with will contain the value 0xBAADF00D over and over and over again.
Since you're trying to access memory location BAADF015, I'd guess that you've alllocated some space for a pointer and then you never actually made that pointer point at an object.
Thank you Moschops for the explanation !
I called (after else) 3 mallocs and assigned values for the pointers there, so I still can't figure out what I missed there.
That's how I called the function:
I guess one of these pointers ppension->p3->dog_type3->cell_phone has a bad value. Print out the value of each pointer (not the thing it points to - the pointer itself) and see which one you haven't set.