I managed to fix this at last. The call stack said that the error occurred after main was called and I realized that I used an incorrect method at first to check where the application crashed. When the application was to delete an object of type VBOQuad, I checked if the object existed in memory by comparing it to NULL, but I tried to print out the value of an uninitialized pointer of this type and I realized that such a pointer is not necessarily equal to NULL. In the end, an uninitialized pointer was seen as an initialized one, thus the application would try to delete an object that didn't exist in memory.
Thanks for your help!