C++动态数组分配

来源:互联网 发布:js cad 编辑:程序博客网 时间:2024/05/18 02:50
在c++中时不能像java中一样定义这样的数组 int[] arr = new int[],如果我们要根据程序的运行来实现动态数组在c++中利用指针这个好东东。

动态一维数组:
#include<iostream>using namespace std;int main(){     int len;     cin>>len;     int *p=new int[len];     delete[] p;     p = NULL;     return 0;}


动态二维数组:
int main(){     int row, col;     cout << "Please enter the number for row and column: " << endl;     cin >> row >>col;     //为二维数组开辟空间     int **p = new int*[row];     for (int i = 0;  i < row;  i++)    {          p[i] = new int[col];    }     for (int j = 0;j < row; j++)     {          for (int k = 0; k < col; k++)          {               p[j][k] = (j + 1) * (k + 1);               cout << p[j][k] << &p[j][k];          }          cout<<endl;     }



     //释放二维数组占用的空间
    
 for (int m = 0; m < row; m++)    {          delete[] p[m];    }    delete[] p;    p = NULL;    return 0;}


当然要利用指针也可以实现多维数组,但是这是应该利用STL中的vector更简单。