如何判断一个指针是否为空

kim_fu 2004-03-23 10:55:30
代码如下
COLORREF * m_clr;
m_clr = new COLORREF [10];

我改如何判断m_clr是否已经分配过内存了。
因为在以后的代码里要对m_clr进行重新分配内存。
...全文
767 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pcyy 2004-03-23
  • 打赏
  • 举报
回复
up
kim_fu 2004-03-23
  • 打赏
  • 举报
回复
谢谢。明白了。
fzd999 2004-03-23
  • 打赏
  • 举报
回复
没有一种系统机制能让你判断一个指针是否有效,你只能在一种情况下发现程序使用了无效指针(野指针),那就是你的程序GP了。
Salmon2004 2004-03-23
  • 打赏
  • 举报
回复
指针变量与零值比较

规则4-3-4】应当将指针变量用“==”或“!=”与NULL 比较。

指针变量的零值是“空”(记为NULL)。尽管NULL 的值与0 相同,但是两者意义不同。假设指针变量的名字为p,它与零值比较的标准if 语句如下:

if (p == NULL) // p 与NULL 显式比较,强调p 是指针变量
if (p != NULL)
不要写成
if (p == 0) // 容易让人误解p 是整型变量
if (p != 0)
或者
if (p) // 容易让人误解p 是布尔变量
if (!p)

摘自《高质量C++编程》
fzd999 2004-03-23
  • 打赏
  • 举报
回复
在每次delete之后都给指针赋空,即
delete []m_clr;
m_clr = NULL;
xstring 2004-03-23
  • 打赏
  • 举报
回复
COLORREF * m_clr = NULL; 最初你就应该给m_clr赋NULL值

这样以后就可以判断是不是调用过
m_clr = new COLOREREF [10]了

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧