C++使用new进行动态内存分配,可以使用如下两种方法,检查是否分配成功。
1、当new操作成功时,返回申请到的堆空间的一个地址。如果不成功,则返回一个空指针。因此,动态空间是否申请成功可以通过检查new操作的返回值来实现。
#include <iostream>
using namespace std;
int main() {
int* p;
p = new int;
if (!p) {
cout << "allocation failure!" << endl;
return 1;
}
*p = 20;
cout << *p << endl;
delete p;
return 0;
}
2、也可以利用C++的assert()宏来确定new操作是否成功。当检测到new操作不成功时,直接退出程序。
#include <iostream>
#include<cassert>
using namespace std;
int main() {
int* p;
p = new int;
assert(p != 0);
*p = 20;
cout << *p << endl;
delete p;
return 0;
}
3万+

被折叠的 条评论
为什么被折叠?



