Я пишу приложение для iPhone, которое использует связанный список для отслеживания набора точек. Я снова и снова успешно использовал связанные списки в других программах на Си, но я никогда не использовал связанный список на iPhone, и моя функция 'freeList' дает сбой.
pointNode * temp;
pointTrain = lPoints->next;
while (pointTrain) {
temp = pointTrain->next;
free(pointTrain);
pointTrain = temp;
}
Вот как я освобождаю свой список, lPoints - это заголовок, который всегда выделяется во время выполнения. Этот код выполняется до добавления еще каких-либо узлов, но он все еще выполняется, хотя «pointTrain» имеет значение NULL, что ДОЛЖНО заставить его пропустить цикл while. К сожалению, цикл все еще выполняется, и программа аварийно завершает работу (pointTrain)
Есть что-то, чего я просто не вижу?
Очки добавляются в цикле следующим образом:
pointTrain->x = onPx / trueWidth;
pointTrain->y = onPx % trueWidth;
pointTrain->next = (pointNode*)malloc(sizeof(pointNode));
pointTrain = pointTrain->next;