new/ delete用于分配和释放单个变量的空间,而new[]/ delete[]则用于分配连续多 个变量的存间 20.3.1neW[]/ delete[]基本用法 new[]语法: 指针变量=neW数据类型[元素个数] 语法实例: nt*p= new int [20] 首先,你需要迅速回想一下,如果是int*p= new int(20);那么该是什么作用?否则你 很容易在事后把二者混了 实例中,用new申请分配了20个连续的整数所需的空间,即:20* sizeof(int)=80个 字节。 图示为
new / delete 用于分配和释放单个变量的空间,而 new [] / delete[] 则用于分配连续多 个变量的存间。 20.3.1 new[] / delete[] 基本用法 n e w [ ] 语法: 指针变量 = ne w 数据类型[元素个数] 语法实例: int* p = new int[20]; 首先,你需要迅速回想一下,如果是 int* p = new int(20); 那么该是什么作用?否则你 很容易在事后把二者混了。 实例中,用 new 申请分配了 20 个连续的整数所需的空间,即:20 * sizeof(int) = 80 个 字节。 图示为:
指钍变量:p 1A000000 指钍变量:p指向的内存空 1A000000 第 1A00000 1A000005 1A000006 1A000007 1A000008 第3个 1A000009 整数 1A00000A 1A00000B 第n个元素… (指针变量p指向一段连续的内存空间) new int只是分配了一个整数的内存空间,而 new int[N]却分配了N个整数的连续空间。 看来,new[]比new“威力更猛”,所以,我们同样得记得:用newD分配出空间,当不在 需要时,必须及时调用 delete[]来释放 delete[]语法: delete[]指针变量 //分配了可以存放1000个int的连续内存空间 int**p= new int [1000 //然后使用这些空间:
(指针变量 p 指向一段连续的内存空间) new int 只是分配了一个整数的内存空间,而 new int[N]却分配了 N 个整数的连续空间。 看来,new[] 比 new “威力更猛”,所以,我们同样得记得:用 new [] 分配出空间,当不在 需要时,必须及时调用 delete [] 来释放。 d e lete [ ] 语法: delete [] 指针变量; 如: //分配了可以存放 1000 个 int 的连续内存空间: int* p = new int[1000]; //然后使用这些空间: