C语言 Vs C++语言
作者: 叶羽抒 , 出处:Safe86
时间:2008-04-23
分配四段内存,分别
C实现如下
复制内容到剪贴板
C++代码如下:
代码:
void test() {
// 分配内存
int *p1, *p2, *p3, *p4;
if( !(p1 = malloc(10*sizeof(int))) ) // 内存不足
return;
if( !(p2 = malloc(20*sizeof(int))) ) { // 内存不足
free(p1);
return;
}
if( !(p3 = malloc(30*sizeof(int))) ) { // 内存不足
free(p1);
free(p2);
return;
}
if( !(p4 = malloc(40*sizeof(int))) ) { // 内存不足
free(p1);
free(p2);
free(p3);
return;
}
// 在这里进行计算
// 释放内存
free(p1);
free(p2);
free(p3);
free(p4);
}复制内容到剪贴板
代码:
void test() {
try{
// 分配内存
std::vector v1(10), v2(20), v3(30), v4(40);
// 进行计算
// 无需编写代码释放内存,析构函数自动释放内存
} catch(std::bad_alloc& ex) { // 内存不足
return;
}
}编辑分析:虽然我习惯的是C,站在公平的立场来说 C 中 使用太多的if 来判断分配内存的是否足够 而c++ 的std::vector 能实现自动分配 这点是C无法比拟的站在主观的观点上

