博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++中new分配动态数组
阅读量:6684 次
发布时间:2019-06-25

本文共 636 字,大约阅读时间需要 2 分钟。

变长一维数组  

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

//文件名:   array01.cpp  #include
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开辟的内存空间。  

转载于:https://www.cnblogs.com/hdk1993/p/4652789.html

你可能感兴趣的文章
华硕M2A-VM+AMD4000超频方法
查看>>
HDU 6030 Happy Necklace
查看>>
ZOJ 3640 Help Me Escape
查看>>
HDU 3346 Lucky Number
查看>>
SQLSERVER SQL性能优化
查看>>
两个Fragment之间传递数据
查看>>
脱离文档流
查看>>
java二维数组简单初步理解
查看>>
SQL SERVER全面优化-------写出好语句是习惯
查看>>
Spark SQL configuration
查看>>
[BZOJ] 1087 [SCOI2005]互不侵犯King
查看>>
DrawIndexedPrimitive函数的详细解释
查看>>
前端知识点大全【转载】
查看>>
【转】opengl 函数库--帧缓存操作,查询函数,窗口初始化等
查看>>
骆驼拼写法(CamelCase)
查看>>
高压缩文件是如何实现的
查看>>
集合类的用法总结(NSArray、NSDictionary、NSSet)
查看>>
一个能让cin和scanf 一样快的方法:
查看>>
代理延迟加载中proxy和弄no-proxy区别
查看>>
JQuery小技巧
查看>>