лет назад я записал заметку в моей книге по K & R.это был , вы не можете сделать это относительно использования free(temp1);
вы не опубликовали полный код, но вы используете temp1 = leftP
, а затем free(temp1)
- почти то же, что яЗаписано несколько лет назад, говоря, что не может этого сделать.
Никогда не понимал причину этого, оно основывалось на использовании malloc()
или calloc()
, а затем при использовании free()
аргумент free()
должен быть указатель, используемый в операторе malloc или calloc.
предлагает вам повторно использовать временный указатель другим способом;затем любое имя указателя при условии, что вы использовали malloc
, затем используйте этот указатель и установите его в качестве узла, который вы хотите освободить ... после настройки значений ->next
и ->previous
, чтобы сохранить список в целости.
нашел его:
стр. 252, K & R Язык программирования C, 2-е издание
void free ( void *p )
free освобождает пространство, на которое указывает p;это ничего не делает, если р равно нулю. p должен быть указателем на пространство, ранее выделенное calloc, malloc или realloc.