调试时遇到跳转至_debugger_hook_dummy = 0;
一、我遇到的原因在于读TXT文件时,代码为:
void GLOperator::getPolyAdj(const char* inputfile) { ifstream infile (inputfile); if(!infile){ cout << "Unable to open input file"; exit(1); } const char* delim = ":,"; while ( (infile.good()) && (! infile.eof()) ){ char buffer[500]; infile.getline (buffer,500); char* token = strtok(buffer, delim); int startID = atoi(token); token=strtok(NULL, delim); int t_endID = atoi(token); token=strtok(NULL, delim); } 此段代码,若遇到txt中存在空行,则出现空指针,报错如上,故在getline(...)处增加判断,如下:
char buffer[500]; infile.getline (buffer,500); //必须有这个判断来防止读到空行下面的token出错 if(strcmp(buffer,"")==0){ continue; } char* token = strtok(buffer, delim); int startID = atoi(token);
二、另,此bug 出现的原因 还可能 有(整理自网络):
使用的函数不够安全;
相对路径,对应用程序的调用环境不同这个目录是不同的;点击打开来源 文件打开失败(e.g.上一条),越界使用指针;点击打开来源
