У меня есть этот код из класса программирования:
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. Что не так и как это можно исправить?
Похоже, вы разыграли NULL указатель:
NULL
В main:
main
List *first = NULL;
В ToList:
ToList
List *p = first; // first = NULL ... p->x = arr[i]
Итак, вам нужно распределить список в первую очередь.
Других решений пока нет …