С ++ проблемная функция, Array to List

У меня есть этот код из класса программирования:

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. Что не так и как это можно исправить?

-4

Решение

Похоже, вы разыграли NULL указатель:

В main:

List *first = NULL;

В ToList:

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

Итак, вам нужно распределить список в первую очередь.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]