码迷,mamicode.com
首页 > 编程语言 > 详细

c++中new分配动态数组

时间:2015-07-17 00:17:26      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

变长一维数组  
  这里说的变长数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组。实现变长数组最简单的是变长一维数组,你可以这样做: 

//文件名:   array01.cpp  

#include<iostream>  

using   namespace   std;  

int   main()  

{  

	int   len;  

	cin>>len;  

	//用指针p指向new动态分配的长度为len*sizeof(int)的内存空间  

	int   *p=new   int[len];  

	...........  

		delete[]   p;  

	return   0;  

}  

  注意int   *p=new   int[len];

  这一句,你不能这样做:  
  int   p[len];  
  C++编译器会报错说len的大小不能确定,因为用这种形式声明数组,数组的大小需要在编译时确定。而且这样也不行:  
  int   p[]=new   int[len];  
  编译器会说不能把int*型转化为int[]型,因为用new开辟了一段内存空间后会返回这段内存的首地址,所以要把这个地址赋给一个指针,所以要用int   *p=new   int[len];  
  array01.cpp实现了一个变长的一维数组,但是要养成一个好习惯,就是注意要注销指针p,使程序释放用new开辟的内存空间。  

c++中new分配动态数组

标签:

原文地址:http://www.cnblogs.com/hdk1993/p/4652789.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!