C ++有问题的函数,Array to List

时间:2017-05-24 20:08:47

标签: c++ arrays list move tolist

我有来自编程类的代码:

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结束。有什么问题,如何解决?

1 个答案:

答案 0 :(得分:1)

看起来您取消引用NULL指针:

main

List *first = NULL;

ToList

List *p = first; // first = NULL
...
p->x = arr[i]

因此,您需要先分配列表。