之前编写代码时,想要在使用标准输入的值来开辟一个数组
int num;
scanf("%d",&num);
int a[4][num][3];
但VS编译未通过,报错:表达式必须含有常量值
这是由于VS所使用的C++编译器CL不允许使用变量作为数组的长度定义数组。而GCC编译器是允许的。
如果是要动态
定义一个
一维数组是较为简单的:
int *a = new int[num];
初始化:
memset(a,0,num*sizeof(int));
释放空间:
delete []a;
如果是
二维数组要
定义并初始化一个a[i][j]的数组则需要:
int **a = new int *[i]; for(int x = 0;x<i;x++) { a[x] = new int[j];
memset(a[i],0,j*sizeof(int)); }
插销:
for(x=0;x<i;x++)
{
delete []a[x];
}
delete []a;
三维数组与二维数组类似
定义:
int ***a = new int**[k1];
for(int i=0;i<k1;i++)
{
a[i] = new int*[k2];
for(j=0;j<k2;j++)
a[i][j] = new int[k3];
}