°希作先生丶 发表于 2018-10-29 10:21:30

C\C++中如何判断一个指针是否分配了空间?

如题,我的思路是用*取得指针所对应的空间是否为NULL,但是发现不同类型的变量还有结构体变量的结果各不相同。求解

ba21 发表于 2018-10-29 10:33:08

这个经常用的

既然这样,你首先初始化 指针的指向的地址为 NULL。这是必须的;
在用的过程中判断 指针的指向的地址是否为NULL即可。

风扫地 发表于 2018-10-29 10:36:07

本帖最后由 风扫地 于 2018-10-29 10:43 编辑

指针定义了不初始化就利用使用,野指针就出现了;
指针对应的空间已经被释放(动态空间被撤销,局部变量生命结束)而指针未被清NULL,悬空指针就出现了。

--------------------------------------------------------------------------------------------
回到楼楼的问题"C\C++中如何判断一个指针是否分配了空间? "
在做好了防野指针、防悬空指针以后就是判断指针是不是NULL:
是NULL,没有分配空间;
非NULL,分配了可用的安全的空间。

claws0n 发表于 2018-10-29 10:50:33

空指针不能解引用哦,会退出程序的。
只能自己小心一点 {:9_241:}

╰☆忝婲雨☆╮ 发表于 2018-10-29 11:40:24

风扫地 发表于 2018-10-29 10:36
指针定义了不初始化就利用使用,野指针就出现了;
指针对应的空间已经被释放(动态空间被撤销,局部变量生 ...

会C++的,据说都是大神

风扫地 发表于 2018-10-29 14:13:15

╰☆忝婲雨☆╮ 发表于 2018-10-29 11:40
会C++的,据说都是大神

{:5_104:}不是大神,没学过C++,他问的是C或者C++,我回答的是C语言里面的。
第一个条件满足自动短路了,C++可能有别的机制吧,只能留待真的大神回答了。
{:5_96:}
页: [1]
查看完整版本: C\C++中如何判断一个指针是否分配了空间?