Массив указателей на список типа очередь - Освобождение памяти - C (СИ)
Формулировка задачи:
Я выделял память так
, т.е. сделал массив указателей на список типа очередь.
Как ее освободить пробовал так но не получается?
Структура и глобальные переменные
*m какраз мой масив
m=(SP*)malloc(MAX*sizeof(SP));
void Zvil() { SP *p2,*p1; int i; //for(i=MAX-1;i>=0;i--) p=&m[0]; for(i=0;i<MAX;i++) { p1=p; p=&p[i+1]; if(p1==NULL) { free(&m[i]); continue; } if(p1->k==NULL||p1==NULL) { free(p1); continue; } while(p1!=NULL) { p2=p1->nas; free(p1); p1=p2; } } }
typedef struct S { int k; struct S *pop,*nas; } SP; SP *p,*m,*s; int n,mas[MAX];
Решение задачи: «Массив указателей на список типа очередь - Освобождение памяти»
textual
Листинг программы
free (m); m = NULL;
Объяснение кода листинга программы
- В данном коде происходит освобождение памяти, выделенной под список типа
очередь
. - Переменная
m
содержит указатель на начало списка. - При помощи функции
free
освобождается память, выделенная под список. - Значение переменной
m
приводится к нулю, чтобы указать на то, что список пуст и не содержит элементов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д