C++编程实现变长数组

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

  //文件名:   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];

posted @ 2018-01-04 08:34  sgggr  阅读(297)  评论(0)    收藏  举报