[转]c++中的变量做数组长度 还可以解决超大规模数组的问题~~​

http://www.cnblogs.com/wangjixianyun/archive/2012/12/11/2812468.html

 

 

   在c++中时不支持变量作为数组长度参数的,如 int n=10;byte bs[n];   这样写会提示编译错误”表达式必须含有常量值“。

   虽然用变量声明数组大小会报编译错误,但是可以通过指针来动态申请空间实现动数组长度的变量赋值,写法如下:

 

   int length = 10;
   int * varArray;
   varArray = new int[length];

   这样varArray就可以当做数组来用了,这个数组的长度可以在程序运行时由计算得来。如果是普通的数组如int is[10] 编译时必须能确定数组长度,不然会报编译错误,这样灵活性受限比较大。我想这个就是new的存在原因之一吧,在栈中分配的内存,大小都是编译时就确定好的,如果想在运行时来动态计算使用内存的大小的话,就要用new这样的动态分配函数,来达到更高的灵活性。

   可以自己声明一个结构体,来代表这个指针实现的数组,这样可读性会高点,用起来也方便点。

   注意:c++ 用new分配空间以后,不用的时候要记得delete释放内存,不然会有内存泄露问题。

 

的确厉害呀~~以后就用这方法了~~又简单又方便~~~还可以解决超大规模数组的问题~~

[转]c++中的变量做数组长度 还可以解决超大规模数组的问题~~​》上有1条评论

  1. Pingback引用通告: BZ编程小组 作品 | BZ编程小组

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.