Массив указателей на список типа очередь - Освобождение памяти - 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приводится к нулю, чтобы указать на то, что список пуст и не содержит элементов.