Посмотрите на этот кусок кодов, это часть связанного списка.C - Как я могу освободить динамически выделенную память?
int main()
{
List* head1 = NULL;
insertFront(&head1, 1);
insertFront(&head1, 2);
print(head1);
free(head1);
return 0;
}
другая функция:
void insertFront(List** head, int value)
{
List* node = (List*)malloc(sizeof(List));
node->data = value;
node->next = NULL;
node->next = *head;
*head = node;
//free(node); essentially I am not freeing node
}
Мои вопросы:
мой код будет вызывать проблемы утечки памяти?
Должен ли я освободить выделенную память (динамически) для узла (который находится внутри функции)?
Если я освобожу head1, освободится ли выделенная память для узла? Если да, то как?
Вам не нужно бросание перед 'malloc' –
@EdHeal да, спасибо я прочитал http://stackoverflow.com/questions/605845/do-i-cast-the-result-of -malloc –