Просто чтобы прояснить ответ @Chrono Kitsune, все еще можно освободить указатели внутри структуры, но это рискованно.
То, что делает free(rootNode)
, на самом деле говорит блоку управления памятью, что пространство памяти, которое использовалось rootNode
, больше не используется и является честной игрой для всего, что в этом нуждается. Хотя rootNode
все еще указывает на то же место, теперь он считается недействительным указателем, и его содержимое может быть повреждено, поскольку его местоположение теперь может быть перезаписано другими вещами.
Если вы попытаетесь получить доступ к rootNode
сразу после его освобождения, оно может работать, но нет гарантии, поэтому безопаснее всего free
его содержимое (которое было malloc
'd) до удаления rootNode
.