c++动态分配内存

使用new分配内存:在运行阶段分配未命名的内存以存储值。这个内存实际是堆内存。

1 int *ptr_int = new int;    //  new和delete是成对出现的。后面的new int返回一块内存地址,a是一个指针.
2 delete ptr_int; // delete是指释放内存。

 

使用new给数组分配动态内存。

1 int *ptr_array = new int[10];
2 delete[ ] ptr_array; // 使用delete[ ]释放数组内存。

 

程序的内存分配;

栈区(stack)

                 由编译器自动分配释放,一般存放函数的参数,程序的局部变量等,操作方式类似栈的先进后出。

堆区 (heap)

              由程序员自己分配释放,若程序不释放,程序结束时可能由系统回收。如果没被回收就成了野内存(没有任何指针指引,也叫内存泄漏。容易造成程序崩溃。)与数据结构中的堆两码事,分配方式类似链表。

全局区

            全局变量和静态变量存储在一起,结束后由系统释放。

文字常量区

             常量字符串存在这儿,程序结束由系统释放。

 

二维数组的指针:

   

1   int (* ptr)[3] = array ;      //  降维表示

 

posted @ 2019-08-26 18:20  Parallax  阅读(117)  评论(0编辑  收藏  举报