som*_*ser -2 c free pointers dynamic-memory-allocation
释放后指针的值是否为NULL?
int* p = malloc(sizeof(*p));
free(p);
if(p==NULL)
printf("Null\n");
else
printf("Not null\n");
Run Code Online (Sandbox Code Playgroud)
输出:
Not null
Run Code Online (Sandbox Code Playgroud)
好吧,我假设没有;
无论如何,我今天早些时候提出了一个问题:
在这里查看: C - 如何释放动态分配的内存?
List* head1 = NULL;
insertFront(&head1, 1);
insertFront(&head1, 2);
print(head1);
while (head1)
{
List *temp = head1;
head1 = head1->next;
free(temp);
}
if(head1 == NULL)
printf("Null\n");
else
printf("Not null\n");
Run Code Online (Sandbox Code Playgroud)
这种情况下的输出:
Null
Run Code Online (Sandbox Code Playgroud)
在这种情况下,在释放head1(节点也)后,head1变为null,不是吗?
最后,我错过了一些概念吗?
head1为null,但p不是.
我的问题是:
为什么head1和p之间的值不同?