繁体   English   中英

指向指针空 C 的指针

[英]Pointer to Pointer null C

我有一个关于 C 中双指针的问题。例如:

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

我的问题是,如果我有一个指向另一个指针 (point2) 的双指针,并且我在 (point2) 上释放了一个指针,那么双指针 (point) 将指向一个没有任何内容的内存地址。 所以我应该做 * point = NULL?

严格来说,您不必将NULL分配给*point 但是,无论如何这样做是一个很好的主意,因为它可以帮助您在调试程序时区分有效指针和无效指针。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM