定义一个未知长度的数组,定义一个未知长度的数组是

http://www.itjxue.com  2023-01-06 16:42  来源:未知  点击次数: 

如何定义未知大小的数组

数组定义必须明确数组长度,所以未知长度的数组是无法直接定义的。

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;

(责任编辑:IT教学网)

更多

推荐Mail服务器文章