Is there anything wrong with handling memory in this manner? Am I overlooking any potential problems with this method?
Yes. You are violating all sorts of good coding practices.
First of all, the fact that you're using a global suggests there's other serious issues with your code.
Second of all, you're requiring that CObjects know about ObjectList for no good reason. Someday you will want to make a CObject without adding it to ObjectList and then you're design is totally screwed and you'll have to redo your design anyway. Don't think that will happen, do you? Well, the entire history of software development says otherwise. Since the only change to your code to *not* do that is just
ObjectList.push_back( new CObject(0, 0, 1) );
I don't see what you think your code gains you. Of course the above code isn't really safe either, in the event of an exception occurring.
I'm also curious over whether CObject even needs to be dynamically allocated like that. What does CObject look like? There might be a much better solution for your needs.
Side note: You don't need to check if for the pointer being non-null. C++ as defined considers delete 0; perfectly legal and safe. It contains the check for being null already.