我有来自编程类的代码:
void ToList(List *first, int *arr, int n) {
List *p = first;
for(int i=0; i<n; i++) {
p->x = arr[i];
if (p->next != NULL) p = p->next;
}
}
我将其调用以将Array元素传输到List:
int main() {
const int N = 10;
int m[N] = {5, 8, 1, 7, 2, 6, 9, 4, 0, 3};
List *first = NULL;
ToList(first, m, N);
PrintList(first);
我遇到了“分段错误” - 程序以退出代码139结束。有什么问题,如何解决?
答案 0 :(得分:1)
看起来您取消引用NULL
指针:
在main
:
List *first = NULL;
在ToList
:
List *p = first; // first = NULL
...
p->x = arr[i]
因此,您需要先分配列表。