Массив указателей на список типа очередь - Освобождение памяти - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Я выделял память так
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];
*m какраз мой масив

Решение задачи: «Массив указателей на список типа очередь - Освобождение памяти»

textual
Листинг программы
free (m);
m = NULL;

Объяснение кода листинга программы

  1. В данном коде происходит освобождение памяти, выделенной под список типа очередь.
  2. Переменная m содержит указатель на начало списка.
  3. При помощи функции free освобождается память, выделенная под список.
  4. Значение переменной m приводится к нулю, чтобы указать на то, что список пуст и не содержит элементов.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы