CSDN论坛 > C/C++ > C语言

指针问题~0xcdcdcdcd是不是空? [问题点数:50分,结帖人plxmbh]

Bbs1
本版专家分:0
结帖率 92.31%
CSDN今日推荐
Bbs6
本版专家分:9748
Bbs7
本版专家分:25856
Blank
黄花 2003年10月 C/C++大版内专家分月排行榜第二
Blank
蓝花 2004年3月 C/C++大版内专家分月排行榜第三
Bbs7
本版专家分:20323
Blank
红花 2003年11月 C/C++大版内专家分月排行榜第一
2003年5月 C/C++大版内专家分月排行榜第一
Blank
黄花 2002年5月 Delphi大版内专家分月排行榜第二
2003年12月 专题开发/技术/项目大版内专家分月排行榜第二
Blank
蓝花 2002年6月 C++ Builder大版内专家分月排行榜第三
2003年11月 专题开发/技术/项目大版内专家分月排行榜第三
Bbs2
本版专家分:285
Bbs1
本版专家分:0
Bbs5
本版专家分:2765
Bbs2
本版专家分:402
Bbs5
本版专家分:4804
Blank
黄花 2005年9月 Linux/Unix社区大版内专家分月排行榜第二
2005年5月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2005年8月 Linux/Unix社区大版内专家分月排行榜第三
2005年6月 Linux/Unix社区大版内专家分月排行榜第三
匿名用户不能发表回复!
其他相关推荐
C/C++ 下如何判断空指针
今天在写C++代码,遇到一个很奇怪的问题,在Android JNI下判断一个指针是否为空,但是发现 (NULL == ptr )或者 (nullptr== ptr )表达式均为真,然而ptr是刚new出来的,也有地址值。 这就很让人费解了,不信邪,写了这么多年的代码了,这种代码怎么看怎么没问题,同样的代码到x86环境下跑一次,却得到了我想要的结果,真是让人凌乱啊。。。 最后只能祭出了我
判断指针是否为空
这两天一直迷惑一个问题,就是如何判断指针是否为空,通常有如下两种方式(假设p为指针): if (NULL == p) { // ... } if (!p) { } 到底哪种方式好呢?这个问题应该从两个方面去考虑,本文就是围绕这两个问题展开的,仅限于C语言。 它们在语义、编译等环节上是否等价? 它们在可读性、可维护性等上面是否等价? 一、是否存在隐式类型转换? 《C 程序设计语言
C++删除空指针的一个坑
最近使用了项目公共库中看起来很稳定的一个消息队列类(前同事留下的),起初用得还挺好。后来程序中突然出现了内存暴涨的情况,最后定位下来是这个类的问题。随后花了一些时间定位出现问题的代码,其实在DEBUG时都没有找到问题代码,真正找到问题是凭着感觉在一堆代码里揪出了这样一句话:delete (void*)lParam; 灵感突现,这句应该有问题。当时在办公室,不能上网且手里又没有现成的参考资料,于是随
C++在delete指针之后是否要置为null
delete一个指针之后,只是回收指针指向位置的空间,而指针本身的值不变(也就是说还是指向那个地址的)。你需要手工将其赋值为NULL。 现在对于printf的反汇编代码不太熟悉,以后写个实例分析一下。
关于:0xcdcdcd
1 、 2 、 今天遇到一个问题,将第一块代码注释掉,第二段就会报错: 原来: 指针如果没有初始化,系统会默认初始化为:0xcdcdcd,导致判断空失败,free野指针导致崩溃。 0xcdcdcd  (2011-03-25 23:52:19)别谈: 转载▼ 标签: 杂谈 VC在d
二叉树的创建的内存问题
下面的二叉树创建代码是有问题的: #include #include #define MAX_LEN 50 #define ElemType char #define Status int #define OK 1 #define ERROR 0 #define OVERFLOW -1 typedef struct Node{ ElemType data; struct Node *l
什么是内存泄漏?野指针?悬挂指针?空指针异常?
1.Q:什么是内存泄漏? A:用动态存储分配函数动态开辟的控件,在使用完毕后没有释放,结果导致一直占据该内存单元,直到程序结束,称为内存泄漏。 2.Q:什么是野指针? A:指指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为NULL避免,而只能通过养成良好的编程习惯尽力减少。 成因:(1)指针变量没有初始化 (2)指针被free/de
一个指针释放后不置空的危害
今天面试碰到这个问题了,可以说这个问题是我回答最冤枉的。 我觉得我对这个问题,有很清晰的认识。但是不知道为什么,嘴秃喽了一句内存泄漏,真想打自己一个大嘴巴。 内存泄漏的情况的产生是:例如:用int* p=(int*)malloc(sizeof(int));让p重新指向其它,这样用malloc()开辟的空间就找不到了,造成内存泄漏。 一个指针释放后不置空的后果: free(p);后p是一个非
如何判定一个变量是指针还是非指针
//如何判定一个变量是指针还是非指针 #include using namespace std; template void isPtr(T*) { cout << "void isPtr(T*)" << endl; } void isPtr(...) { cout << "void isPtr(...)" << endl; } int main() { int i = 0; c
C++ 判断指针为空的写法
C++之父的C++圣经《C++程序设计语言 特别版》中说: 大家不要听某些人说判断指针是否为空用(p==NULL)或(p!=NULL)的格式,C++之父认为这样写是不好的,提倡直接写(p)或(!p)的形式。 在win32开发中,if ( NULL == p )是极好的写法。但不要写成:if ( p == NULL )  C++之父主要是反对使用“NULL”,因为在某些特殊的开发环境叫,“N
关闭
关闭