c语言中如何给不确定大小的数组定义并使用?

同题。
二楼的方法很好,但不知如何使用?

C语言中没有明确的“动态数组”(也就是不确定大小的数组)这个概念,
只能用动态内存分配来实现,我给你一个思路:
创建数组——用动态分配分配一个指定大小的内存(数组)
销毁数组——释放动态分配内存
访问元素——通过内存指针间接引用
增加元素——再分配一块新内存区域(大小为增加后的大小),把久区域的元素数据复制到新的内存区,销毁旧的内存区域
减少元素——与增加元素类似
具体的实现方法建议你多参考一下关于函数malloc(内存分配函数)的使用介绍

其实真的很麻烦,如果实在完成不了的话就学C++吧,C++创建动态数组比较方便
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-31
int *a;//声明一个数组
int n;
cin>>n; // 输入一个变量n,当然也可以你的程序中的其它的任何整型变量
a=new int[n]; //用new关键字为a分配可存放n个int型数据的空间
第2个回答  2010-07-31
在C语言中,如果不知道数组的大小是无法直接定义数组的,如果真想定义,可以用指针定义
第3个回答  2010-07-31
用 malloc 间接实现
第4个回答  2010-07-31
楼上强人,不过不够通俗简单,定义一个足够大的数组是最主流的简单
比如a[1000]

c语言中如何给不确定大小的数组定义并使用?
C语言中没有明确的“动态数组”(也就是不确定大小的数组)这个概念,只能用动态内存分配来实现,我给你一个思路:创建数组——用动态分配分配一个指定大小的内存(数组)销毁数组——释放动态分配内存 访问元素——通过内存指针间接引用 增加元素——再分配一块新内存区域(大小为增加后的大小),把久区...

C语言中想定义一个不知道大小的数组怎么办
1)可以定义一个足够大的数组,保证够用就好。2)使用链表结构,用一个申请一个元素的空间 3)用malloc先申请一定的空间作为数组的空间,等到不够用的时候,再重新malloc一个更大的空间,将旧的那个空间里的数据拷贝过来,作为数组的新的空间,然后free掉旧的那个空间即可。

c语言 怎么声明一个不确定大小的数组
C没有提供现成的办法。不过我在实际工作中做过,用起来挺爽的。声明一个所需类型的指针p,用malloc函数申请一个较小的空间(例如10个元素)并将首地址赋给p就构成了以p为首地址的一维数组;然后向数组输入数据;输入满后还需输入时,用上述同样办法另申请一个以指针q为首地址的较大的数组(例如20个...

C语音如果数组个数不确定应该怎样定义数组?
第一种方法:最大值法。申请的数组可能需要30个左右,于是申请数组大小固定为40;第二种方法:动态分配,即指针。需要大小为n的整型数组,int *pn = (int*)malloc(n*sizeof(int));

C语言中,如何定义大小不确定,由运行时确定大小的数组
free int main(){ int i, n;int* p; \/\/ 声明为指针 scanf( "%d", &n );p = ( int* )malloc( sizeof(int) * n ); \/\/ 以字节为单位分配 for ( i = 0; i < n; ++i ) { p[i] = i+1;printf( "%d ", p[i] );} free( p ); \/\/ 用完记得释放 return 0;} ...

C语言中,对于不知道长度的数组怎样输入。。。
1、一维数组的定义、引用和初始化:定义一维数组的一般形式:类型名 数组名[常量表达式]。2、一维数组程序举例:冒泡法。3、得到结果进行输出。4、二维数组常称为矩阵。把二维数组写成行列的排列形式,可以形象的理解二维数组的逻辑结构。5、字符数组的定义,引用和初始化:C语言中没有字符串类型,字符串...

在C语言中如何定义一个不知道位数的一维数组 求代码
,或者在运行时才知道所需大小而编译时不知道,那要在堆上开辟内存:int n;scanf("&d", &n); \/\/ 运行时读入元素个数nint *arr = (int *)malloc(sizeof (int) * n); \/\/ 申请一个大小为n的int数组... \/\/ 使用arrfree(arr); \/\/ 用完后记得释放内存 ...

C语言如何定义未知行列大小的二维字符数组。行列由键盘输入?
<malloc.h>int main(void) {char **a;int col,row,i;\/\/scanf("%d%d",&row,&col);row=col=10;a=(char **)malloc(sizeof(char *)*row);for(i=0;i<row;++i){a[i]=(char *)malloc(sizeof(char)*col);strcpy(a[i],"hello , world");puts(a[i]);}return 0;} ...

请问C语言中,如何在结构体内定义长度不确定的数组呢?
两种方法:一种是采用指针, 动态分配内存 另一种请搜索"柔性数组", 这种方式同样需要在堆中动态分配内存.

c语言中数组的定义和使用是什么?
动态数组是指在声明时没有确定数组大小的数组,即忽略方括号中的下标。使用时,可随时用ReDim语句(C语言中用malloc语句)重新指出数组的大小。动态数组,是相对于静态数组而言。静态数组的长度是预先定义好的,在整个程序中,一旦给定大小后就无法改变。而动态数组则不然,它可以随程序需要而重新指定大小...

相似回答