Есть структура:
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, а просто обьявить ее? Когда в таком случае освободится память, занимаемая структурой?