首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于new分配空间时size = 零

2013-04-20 
关于new分配空间时size 0如题最近遇到了这个问题,不知道这个size为零的情况,给分配空间吗?我自己做的程

关于new分配空间时size = 0
如题
最近遇到了这个问题,不知道这个size为零的情况,给分配空间吗?

我自己做的程序测试没有报错.

linux C++;

int *pInt = new(int[0]);
if(NULL == pInt)
{
     fprintf(stderr,"new pInt memory failure\n");
}
printf("pInt = %d ; pIntsize =%d ; *pInt = %p\n", *pInt , sizeof(pInt), pInt);

结果
pInt = 0 ; pIntsize =4 ; *pInt = 0x82b1008

这个内存地址可以用吗?大小是0啊?


C++
[解决办法]
没报错不代表没有错.
不可以为0
[解决办法]
语法没错,语义没有。
[解决办法]
此时new返回有效地非零指针,与其他指针不同,该指针不能进行解引用操作,因为它没有指向任何元素,可以对该指针进行比较运算,因此可以在循环中使用;在该指针上加0或者减去本身得0值。
------------------以上是c++ primer中的内容

热点排行