I made quite some changes to my code, it works without crashing BUT I'm not sure if I'm handling the memory correct inside the add and pass methods.
Your display function is gonna crash. You've got NULL in your nodes array for leaf nodes, but still try call display(sprite) on them. This is probably what's causing the crash on 1st run through the loop.
If you're getting a crash earlier than that, it's likely to be in code you're not showing.
You're also not initializing nodeStatus in the constructor.
The Object constructor takes an "const Object&" parameter which should make sure the memory is still pointed at thus not leaking any memory.
Are you not releasing any memory? It looks like you're allocating, but not releasing. That might be the problem.
I'm releasing the memory inside the destructor of a Quadtree and it calls every nodes ( that is not null ) and deletes them as well, causing a chain destruction starting from the bottom.
The new problem is when it's supposed to split up, noted in the "Pass" or "Split" method after the fist split it starts getting weird, it splits up the wrong nodes and adds the object to them. Is something wrong with my math?
EDIT: Here is a picture that explains the problem, notice the split in the right corner.