定义一个未知长度的数组,定义一个未知长度的数组是
如何定义未知大小的数组
数组定义必须明确数组长度,所以未知长度的数组是无法直接定义的。
1.如果你的数组在运行过程中可以确定,比如你输入一个整数来确定数组长度,这样的话可以通过动态内存分配实现。比如:
int a;
cina;
int *b=new int[a];
2.如果你的数组运行的时候都无法确定长度,比如你的数组可能会不断的添加新元素进去。这时候可以使用C++的标准库vector实现,比如:
vectorint array;
array.push_back(10);
array.push_back(10);
array.push_back(10);

怎么定义一个长度未知的数组
除常量数组外,数组必须是定长的,如果不知道长度,有几种办法,固定分配一个认为不会出现的维度值,或者对数组进行动态分配,如:
int *pArray,nCount;
int Insert(int * pArray,int nCount,int nElement)
{
int *pInt;
pInt = new int[nCount+1];
if(nCount0)memcpy(pInt,nArray,nCount);
pInt[nCount++] = nElement ;
if(pArray)delete pArray;
pArray = pInt;
return nCount;
}
main()
{
nCount = 0,pArray = NULL;
nCount = Insert(pArray,nCount,99);
}
C 如何定义一个未知长度的数组
定义一个未知长度的数组的方法:
一是用VLA可变长数组,例如:
int i = 10, j = 20;
double a[i][j]; //定义VLA
VLA要c99才开始支持,需要使用c99编译器,例如gcc
二是使用动态数组,例如:
int m = 10, n = 20;
.........
double **p = ( double** )malloc( 10 * sizeof( double* ) );
for( i = 0; i 20; ++i )
p[i] = ( double* )malloc( 20 * sizeof( double ) );
..........
p[5][6] = 20.68;