У меня есть программа командной строки C, для которой я использую функцию calloc() для назначения некоторой памяти для структуры, которая также имеет структуру в ней с определенной памятью.Освобождение памяти после использования
Если я использую функцию free() для освобождения памяти из родительской структуры, будет ли она также освобождать память из дочерней структуры?
Или мне нужно сначала освободить память из дочерней структуры?
несколько связанных: http://stackoverflow.com/questions/1941323/always-check-malloced-memory – jldupont
Вы также использовали calloc/malloc для дочерней структуры? – quinmars
Если вы использовали calloc() для дочерней структуры, вы должны использовать free() в этой памяти. В противном случае по мере того как ваша программа будет работать, она постепенно будет потреблять все больше и больше памяти. (Если ваша программа не делает этого намного до выхода, это не очень важно, но если вы сделаете это в цикле, вы можете даже сбой.) – egrunin