指针指向null C的指针

时间:2017-10-16 18:56:07

标签: c

我对C中的双指针有疑问。 例如:

int** point = malloc(sizeof(int**));
int* point2 = malloc(sizeof(int*));
*point2 = 5;
*point = point2;
free(point2);
printf("%d", *point);

我的问题是,如果我有一个指针指向另一个指针(point2)的双指针并且我自由打开(point2),则双指针(指针)将指向一个什么都没有的内存地址。 所以我应该做* point = NULL?

1 个答案:

答案 0 :(得分:1)

严格来说,您不必将NULL分配给*point。但是,最好还是这样做,因为它可以帮助您在调试程序时区分有效指针和无效指针。

  

双指针(point)将指向一个没有任何内存的内存地址。

记忆中总有一些东西。但是,它并不总是在您的控制之下,因此阅读其内容可能并不合法。

例如,当您释放point2时,point中存储的值不会消失。但是,使用该值会变得非法,因为它变得不确定。