请问什么变量是在堆里面的分配, 什么变量是在栈里面的分配.
什幺变量是在全局里面的分配.请具个例子,好吗?

解决方案 »

  1.   

    比如 char * p = new char[256] 是在堆中分配
    函数调用的参数就在栈中分配
      

  2.   

    全局,静态,new产生的变量都在堆中
      

  3.   


    函数中声明的变量在栈中
    用了new标示符在堆中
    全局变量和static变量都在全局区
      

  4.   

    像在局部模块中 申请的变量是栈里面分配的
    用new 和 malloc等分配的是局部堆 它是本程序
    像用global分配的是全局堆,它应该是属于操作系统
      

  5.   

    局部变量在栈里分配
    动态变量(需申请和释放)在堆里分配(C里有malloc()、calloc()、realloc()、free()函数,C++里有new、delete函数)
    全局变量和static变量在全局里分配
      

  6.   

    int a;
    void func(int arg)
    {
       static int b;
       int c;
       void *p;
       p = (void *)malloc(100);
    }a在文件中声明是全局变量
    b虽然在函数内声明,但是静态的,所以也在全局数据区
    c,p是函数内声明,是栈变量
    arg是参数,是栈变量
    p指向的空间用malloc分配,是堆空间
      

  7.   

    你只要记住,java的对象都是在堆里就行了.