一维和二维数组 动态内存分配
一维数组的动态内存分配
#include "stdafx.h" #include <iostream> using namespace std; int main() { int length,i; int *p; cin>>length; p=new int[length]; for(i=0;i<length;i++) { p[i]=i; //不要写成*p[i]=i; cout<<p[i]<<endl; //不要写成cout<<*p[i]<<endl; } delete []p; p=0; return 0; }
2、利用指针的指针实现二维数组的动态存储
int **p; ..... p = new int*[n]; //申请行空间 for (i=0;i<n;i++) { p[i]=new int [n]; //申请列空间 }
3、动态分配内存的指针数组
#include "stdafx.h" #include <iostream> using namespace std; int main() { int (*p)[2]=new int[2][2]; int i,j; int a[2][2]={1,2,3,4}; for (i=0;i<2;i++) for (j=0;j<2;j++) { p[i][j]=a[i][j]; } //p=a; cout<<"p[0][0]的地址为:"<<p[0]<<endl<<endl; for (i=0;i<2;i++) { for (j=0;j<2;j++) cout<<p[i][j]<<"\t"; cout<<endl; } delete[] p; p=0; return 0; }