如何解决指针错误调试帮助
| 我是C ++的新手,我试图在Visual Studio 2010中使用freeglut对Pong的副本进行编程。我的代码运行良好,直到对其进行了一些修订以使其更加面向对象。当我再次运行它时,它工作了好几次,直到我做了一些小的编辑(老实说,我不记得更改了什么,因为我第二天才创建了代码),然后我收到了我运行程序后立即出现此运行时错误: Pong.exe中0x1000bbae处未处理的异常:0xC0000005:访问冲突写入位置0x000000a8。 我不是特别擅长调试,但是我相信这是在我的主循环中的glutDisplayFunc()行实现的。我认为这与空指针有关,但我不知道该怎么办。有人可以帮我找到我的问题吗? 以下是我的程序(Main.cpp)的适用部分:include \"header.h\"
using namespace std;
int main(int argc,char** argv) {
//Initialize GLUT
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(WIDTH,HEIGHT); //Set the window size
//Create the window
//modesetup(2);
//Set handler functions for drawing,keypresses,and window resizes
glutDisplayFunc(mainDraw);
glutKeyboardFunc(handleKeypress);
glutKeyboardUpFunc(handleKeyup);
glutSpecialFunc(handleSpecial);
glutSpecialUpFunc(handleSpecialUp);
glutReshapeFunc(handleResize);
glutTimerFunc(25,update,0);
glutMainLoop(); //Start the main loop. glutMainLoop doesn\'t return.
return 0; //This line is never reached
}
提前致谢!
编辑:我刚刚做了一个新程序,它对所有内容都使用非常标准的功能,但是我仍然收到此错误。我开始认为我的freeglut安装可能有问题。
解决方法
使用F5在Visual Studio中调试运行程序。当您收到错误消息时,调试器应将您置于非法访问的行上。如果该位置没有源代码,则检查调用堆栈。
干杯和健康。
, 在valgrind下运行程序。它会为您提供有关该问题的更多信息,甚至可能指出内存错误,而不是崩溃的直接原因。
, 您可能已经解决了问题。但是由于我有同样的问题,在任何地方都找不到答案二,所以我会回答这个问题:
您只是忘了写
glutCreateWindow(\"Windowname\");
之前的功能
glutDisplayFunc(mainDraw);
glutKeyboardFunc(handleKeypress);
glutKeyboardUpFunc(handleKeyup);
glutSpecialFunc(handleSpecial);
glutSpecialUpFunc(handleSpecialUp);
glutReshapeFunc(handleResize);
glutTimerFunc(25,update,0);
部分。
这导致您得到异常。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。