Динамическое выделение памяти под структуру и ее освобождение - 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.