Есть структура:
struct BUFF {
int len;
char *buf;
}
Есть функция A которая должна возвращать указатель на структуру BUFF.
Я делаю так:
#define SIZE 16
struct BUFF *a(){
struct BUFF *buff;
buff = malloc(sizeof(struct BUFF));
buff->buf = calloc(SIZE, sizeof(char));
buff.len = SIZE;
return buf;
}
Функция B освобождает память:
void b(struct BUFF *buff){
free(buff->buf);
free(buff);
}
Правильно я делаю? Или память для структуры можно не выделять malloc, а просто обьявить ее? Когда в таком случае освободится память, занимаемая структурой?
Ответ на:
комментарий
от dilmah
Ответ на:
комментарий
от alex_custov
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Программа на Си падает, при выделении памяти (2014)
- Форум Выравнивание в структуре (2005)
- Форум Динамическое распределение памяти (2014)
- Форум Правильно ли я организовал выделение памяти? (2014)
- Форум Есть ли здесь утечка памяти и если нет, как назвать проблему? (2016)
- Форум Размер структуры с вложенным массивом структур (2013)
- Форум Как узнать, сколько памяти доступно для выделения? (2005)
- Форум Чем чревата прямая инкапусляция структур в си? (2016)
- Форум K&R Задача 1.16 (2015)
- Форум покритикуйте функцию (2009)