岁月联盟 - 技术社区 - BBS.SYUE.COM's Archiver

hackprince 发表于 2008-4-11 04:48

(自荐)写的 关于C与C++到底谁好

分配四段内存,分别保存10个、20个、30个、40个int数据,然后进行计算,最后释放内存。
C实现如下[code]

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);
}[/code]C++代码如下:[code]void test() {
    try{
        // 分配内存
        std::vector v1(10), v2(20), v3(30), v4(40);

        // 进行计算

        // 无需编写代码释放内存,析构函数自动释放内存
    } catch(std::bad_alloc& ex) { // 内存不足
        return;
    }
}[/code]不好意思  前段自己写错了    [(:lol:)]  大家能够原谅我吧  现在修正

hackprince 发表于 2008-4-11 04:50

虽然我习惯的是C  
站在公平的立场来说
C 中 使用太多的if 来判断分配内存的是否足够
而c++ 的std::vector 能实现自动分配 这点是C无法比拟的
站在主观的观点上
[(:biggrin:)] 大家入门还是学C吧    C是我的最爱[(:lol:)]

sinmon 发表于 2008-4-12 13:25

[(:smile:)] [(:smile:)] 学习了

tuimaochang 发表于 2008-4-12 15:14

我觉得先学C的面向过程,再学C++的面向对象就一目了然。
我就是这么自学的……

尘封じ☆ve 发表于 2008-4-13 01:18

还没开始学呢!~~~~不过也快要学C了~~~书已经有了~~~就差时间的磨合了

尘封じ☆ve 发表于 2008-4-13 01:18

希望楼主能够大大的指教啊~~~~先在此谢谢了~~~

hackprince 发表于 2008-4-18 22:34

起始学C的方向是对的  
不过相对C而言  C# 更简易化
毕竟算是升级版
没有点含量怎么征服群众

南柯一梦 发表于 2008-5-29 00:23

嗯。。顶下。。。不错[(:smile:)]

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2007 Comsenz Inc.