我用 C++ 编写了一个应用程序,它有时会崩溃,因为对象方法存储了无效的 this 指针!当我调试我的应用程序并查看调用堆栈时,有函数func1,以下是func2。在第一个函数中,指针是有效的,但在第二个函数中,this 指针应该与第一个函数中的指针具有相同的地址,this 指针指向一些无效的内存地址:
void obj1::func1( obj2* o ){
//Pointer o is valid and correctely initialized when i debug my Application
o->func2();
}
void obj2::func2(){
//Here i do a call on the this pointer. The this pointer is invalid and so my
//Application is crashing. How can i have a different this pointer then the
//pointer i was calling on. I can't imagine how this can happen.
this->someCall();
}
我的应用程序正在使用不同的线程,所以我认为我可能会在其他一些无法正常工作的线程中删除我的对象,但是这个指针不会被更改 - 如果我错了,请告诉我。我不知道这个错误是如何发生的。
谢谢你的帮助。丹尼斯