c++中在申请内存空间后是否应该立即检查是否为空
答案:2 悬赏:30 手机版
解决时间 2021-01-30 19:27
- 提问者网友:爱唱彩虹
- 2021-01-30 05:37
c++中在申请内存空间后是否应该立即检查是否为空
最佳答案
- 五星知识达人网友:人间朝暮
- 2021-01-30 06:25
按理来讲是需要判断申请的内存是否NULL
但是在C++中如果申请内存失败的话默认不是返回NULL
C++默认是在申请内存失败后抛出std::bad_alloc异常 检查是否返回null是无效的
如果需要使其支持在申请内存失败后返回null 需要使用 nothrow
int *buf = new (std::nothrow) int[1234];
if(NULL == buf)
{
// XXXX
}
但是在C++中如果申请内存失败的话默认不是返回NULL
C++默认是在申请内存失败后抛出std::bad_alloc异常 检查是否返回null是无效的
如果需要使其支持在申请内存失败后返回null 需要使用 nothrow
int *buf = new (std::nothrow) int[1234];
if(NULL == buf)
{
// XXXX
}
全部回答
- 1楼网友:渊鱼
- 2021-01-30 06:47
有时候数据数量是未知的,用动态申请就很方便了,如果用普通的数组,由于不知道大小,你就得设置一个很大的容量以便容纳下所有的数,但数没那么多又浪费,动态申请的话,你就可以先让用户输入数量,然后再根据数量申请内存,用多少申请多少。
在你的例子里,由于是单个整数,所以还感觉不到或者说体现不到这一点,大批量数据就体现出合理性了,利用指针的增减依次改变操作的数据,方便的很。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯