指针被释放后,是不是就变成了空指针?这是很多刚接触指针的同学存在的误区。
我们还是写个代码看下:
char *p = (char *)malloc(sizeof(char) * 128);定义一个指针,然后在堆空间申请一块内存,这种赋值方式就表示指针指向堆空间,画出来就是这样的。
free(p);在图上的表现就是,这块内存自由了,如果后面有其他地方要使用内存,那操作系统完全可以把这块内存再分配出去。
char *p = (char *)malloc(sizeof(char) * 128); free(p); strcpy(p, "helloworld");如果你强行去访问的话,就会出现一些未知的问题。
p = NULL;把p变成空指针。
全部0条评论
快来发表一下你的评论吧 !