c++中有关于malloc内存分配的一个问题
- C/C++ code
#include<iostream>#include<assert.h>using namespace std;void main(){ char *ptr; if((ptr=(char*)malloc(0))==NULL) cout<<"bad pointer"<<endl; else cout<<"valid pointer"<<endl; system("pause");}
以上这段代码输出的是一个合法的指针,但是这样的指针有什么用呢,应该不能在里面存储东西吧。如果是这样为啥还让这种赋值合法呢?
[解决办法]
malloc(0),是有用的,比如判断堆空间,还可以防止指针被乱用。
这么一小段东西,还有很多用途的,只是你还没学到。