Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;-程序结束时的分段错误_C++_Debugging_Segmentation Fault - Fatal编程技术网

C++ C++;-程序结束时的分段错误

C++ C++;-程序结束时的分段错误,c++,debugging,segmentation-fault,C++,Debugging,Segmentation Fault,所以我有这个程序,它运行并做它应该做的事情。但在执行结束时,它抛出了一个分段错误。我运行调试器,它说:“程序收到信号SIGSEGV,分段错误”。我一行一行地运行调试器,当一切都完成时,它似乎会在主函数中抛出错误 代码: #包括 #包括 #包括 #包括 #包括 使用名称空间std; 常数int MAX=100; int firstDigit=0//顶点数 int verticesCount=0; int adjVerticesCount=0; 类图 { 私人: int n; 整数数据[MAX];

所以我有这个程序,它运行并做它应该做的事情。但在执行结束时,它抛出了一个分段错误。我运行调试器,它说:“程序收到信号SIGSEGV,分段错误”。我一行一行地运行调试器,当一切都完成时,它似乎会在主函数中抛出错误

代码:

#包括
#包括
#包括
#包括
#包括
使用名称空间std;
常数int MAX=100;
int firstDigit=0//顶点数
int verticesCount=0;
int adjVerticesCount=0;
类图
{
私人:
int n;
整数数据[MAX];
int gptr[MAX][MAX];
公众:
void create();
空洞清除矩阵();
void拓扑();
};
void图::create()
{
cleanupMatrix();//用零初始化adj矩阵
ifstream-infle(“input.txt”);
字符串行,行_分隔;
if(infle.is_open())
{
while(infle.good())
{
while(getline(infle,line))//读取一行
{
if(line.length()==0)
{
n=垂直计数;
拓扑();
垂直计数=0;
继续;
}
istringstream iss(线);
while(getline(iss,line_separated“”)//读取每行中的数字
{
//将字符串数字转换为整数数字
内部温度;
temp=atoi(行分隔的.c_str());
if(firstDigit==0)//在每一行上,第一个数字是顶点,其余是相邻顶点
{
第一位数=温度;
verticesCount++;
数据[第一位]=第一位;
}
其他的
{//将g数组指向包含邻接顶点的链表
adjVerticesCount++;
gptr[firstDigit][temp]=1;
}
}
adjVerticesCount=0;
第一位数=0;
}
n=垂直计数;
拓扑();
垂直计数=0;
}
infle.close();
}
其他的
{

你的问题可能是

int x,y;
for(x=1;x<=MAX;x++)
    for(y=1;y<=MAX;y++)
        gptr[x][y] = 0;
intx,y;

对于(x=1;x缩短问题并发布!!!@iDebD\u gh我不知道问题在哪里,所以我发布了完整的代码。有时删除部分是好的,检查问题是否仍然存在并重复。这样也可以减少粘贴的代码量。这个问题似乎与主题无关,最好放在代码审查上。这没有帮助,我试着把他们都调成0@balbzr您是否也更改了
中的比较?在设置“zeroindegree”变量之前,您也在读取该变量(if(i==n+1)中程序的第146行)。请尝试在程序上运行类似“valgrind”的工具,这将有助于查找此类错误。@ilent2我刚刚修复了错误
int x,y;
for(x=1;x<=MAX;x++)
    for(y=1;y<=MAX;y++)
        gptr[x][y] = 0;
int x,y;
for(x=0;x<MAX;x++)
    for(y=0;y<MAX;y++)
        gptr[x][y] = 0;