Динамическое выделение памяти под структуру и ее освобождение - C (СИ)
Формулировка задачи:
Есть структура:
Есть функция которая выделяет для нее память:
Нужна функция которая будет освобождать выделенную память. Пишу ее таким образом:
Но в функции удаления выдает ошибку "[Error] type 'struct mystack' argument given to 'delete', expected pointer".
Подскажите пожалуйста, как это исправить?
struct mystack{ int kol; char info[255]; };
mystack* crstack(){ //создание пустого стека mystack *st; st = new mystack; st->kol = 0; return st; };
void delfromstack(mystack &st2){ //добавление элемента в стек delete st2; };
Решение задачи: «Динамическое выделение памяти под структуру и ее освобождение»
textual
Листинг программы
typedef struct mystack { int kol; char info[255]; } mystk; // ********************* mystk* crstack(void) { mystk *st; st = (mystk*)malloc(sizeof(mystk)); st -> kol = 0; return; } // ********************* void delfromstack(mystk* st) { free(st); }
Объяснение кода листинга программы
- Создание структуры типа
mystk
, которая содержит массив символов и целочисленное значение. - Выделение памяти под структуру типа
mystk
с использованием функцииmalloc
. - Инициализация поля
kol
структурыmystk
значением 0. - Функция
delfromstack
освобождает память, выделенную под структуруmystk
, используя функциюfree
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д