LinkedList分割故障的C 数组
C++ array of linkedlist segmentation fault
我正在尝试修复一种方法,该方法采用链接列表的词根以及图中的顶点数,并将链接列表组织到基于链接列表的数组中例如,在边缘结构的第一个顶点上,在节点边缘的firvertex = 1,sndvertex = 2和weight = 2的结构中,它将被分类为数组的第一个元素。另一个带有另一个firvertex = 1的节点边缘将附加到上一个。等等。我已经修复了很多次,但是在运行时它仍会给出一个分段故障。
感谢您的提示,非常感谢。不幸的是,由于它是学校任务,所以我无法离开代码。
Edge* arrayList [numberVertices]
分配堆栈,而不是堆,而在功能末尾的范围内go go。
如果声明为本地数组,则变量arrayList
。因此,在功能末尾被破坏,不应返回。您应该用新的:
Edge** arrayList = new Edge *[numberVertices];
通过您的编译器(如果正确配置)应警告您。这是g++ -Wall
所做的:
bli.cpp: In function ‘Edge** _()’:
bli.cpp:5:9: warning: address of local variable ‘arrayList’ returned [-Wreturn-local-addr]
Edge* arrayList[500];
这对我来说看起来很可疑:
for (int i=0; i<numberVertices; i++) { //initializes the array to NULL
arrayList[numberVertices]=NULL;
}
您可能是指:
arrayList[i]=NULL;
那么为什么不尝试stdlib?我个人建议避免使用指针。您可以使用参考(&amp;)。
,如果您有分割错误,您是否可以调试直到找到失败的线?
?,您基本上会出现分割故障,因为您将边缘构造函数称为null作为根,然后尝试引用root-> next,但root为null ...
相关文章:
- 数组的指针从不分段故障
- C 2D数组导致分割故障(核心倾倒)
- 试图创建动态分配的char数组时的分割故障
- 分割故障 - 遇到问题,创建新的数组实例
- 将内存分配给指针数组时SEG故障
- C AVX2:访问数组数组中的地址时SEG故障
- 处理2D数组时的分割故障
- 具有相同数组索引的C 分割故障
- 试图打印出/加载2D数组时的分割故障
- 输入坐标分为与文件故障的两个单独的数组
- 在一个动态分配的数组的程序中分割故障
- 简单的C++字符数组加密功能 - 段故障
- 分段故障当char数组在功能中声明时
- LinkedList分割故障的C 数组
- Seg故障是由于试图访问超出范围的数组,原因不明
- 循环中的数组出现故障
- CIN 一个非常大的 int 数组,段故障 11
- c++ 插入数组算法故障
- C++数组故障
- 多维数组故障(界限)