用[]开数组
int a,b,c;
int arr[50000];
...............///////////////////////////////////////////////////
////////////////////////////////////////////////////用new开数组
int *arr;
mian()
{
    arr = new int[50000];
}
有什么不同呢?

解决方案 »

  1.   

    1. 内存分配方式上的不同
       用[]分配是从栈上分配内存,不需要人为释放,而且分配效率较高。
       用new分配是从堆上分配内存,需要你显式的用delete[]释放,不然会造成内存泄漏。
    2. 使用方式上的不同
       用new比较灵活,可以根据需要动态分配,相对来说使用效率比较高。
      

  2.   

    开辟内存的区域不同。一个在堆上,一个在栈上。
    用[]开辟的区域,在生命期结束后,系统自动回收;用new分配的区域,必须delete释放,否则生命期与应用程序相同,是内存泄漏的主要原因。
      

  3.   

    用new分配的区域,必须delete释放,否则生命期与应用程序相同,是内存泄漏的主要原因。
    =================================================================================
    这么说如果应用程序退出, new分配的内存就自动delete了, 怎么还说 内存泄漏?
      

  4.   

    堆上和栈上有什么区别?
    ========
    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=207466
    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=101344
      

  5.   

    堆和栈实质上来说都是一块内存区域,区别上面的人都说了啊。
    不过,栈有着一个先进后出这样的一种约定.局部变量,函数参数都是存在于栈空间中的,使用malloc,new开辟的空间都是在堆上的.在堆上开辟的空间一般称为全局数据区域,没有什么访问限制,我的意思是你在这个函数中在堆上开辟空间,在另一个函数中一样可以访问到它,但是局部变量你想想可以吗?
      

  6.   

    这么说如果应用程序退出, new分配的内存就自动delete了
    ====
    对的,在程序没有退出的时候会内存泄漏,
      

  7.   

    静态与动态分配的两个主要区别是:
    1.静态对象是有名字的变量,我们直接对其进行操作。而动态对象是没有密告奶子的变量,我们通过指针间接对其操作。
    2.静态对象的分配与释放由编译器自动处理。程序员不需要做任何事情。而动态对象的分配与释放,必须由程序员显示管理。---摘自c++ primer
      

  8.   

    []开数组是在堆里面开,出了局部函数就自动释放了
    用new开数组是在栈里开,不用delete就不会释放,一点占用那块内存
      

  9.   

    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=207466讲得蛮好的!推荐!
      

  10.   

    这么说如果应用程序退出, new分配的内存就自动delete了, 怎么还说 内存泄漏?
    =======================================================================     这个问题很有意思,不过不说清楚楼主可能并不知道内存泄漏的巨大隐患和可能带来的巨大灾难。
        还是举例来说吧,假设你的应用程序每打开一个文档,需要预先申请 100MB 的空间。
        char *tempbuf = new char[100000 * 1024]; 
        但是当你关闭文档的时候,你并没有调用delete 释放内存,你却希望等程序退出以后程序自动释放,好,你这个愿望理论上是可以的。只是...你知道内存是有限的,当你打开100个文档以后,或许你再次申请内存时,系统可用内存已经被消耗殆尽了,这时你的new就会失败,应用程序就会出现异常,电脑就想死机了一样没有反应,你怎么等待你的应用程序结束自动释放内存了呢?这时唯一的办法或许就是kill process即你的应用程序进程或者重启电脑了。
         
      

  11.   

    djfu(一马平川) 的解释很详细,代表初学者感谢,周末愉快!