C语言程序,需要用到可变长度的数组该怎么办?
发布网友
发布时间:2022-04-20 08:23
我来回答
共2个回答
热心网友
时间:2022-07-12 03:33
尝试下链表吧。
如果那几个数组还有一定的关系,比如一个人的姓名以及各科成绩之内,那就更推荐使用链表了
热心网友
时间:2022-07-12 03:33
int i,j;
int **a=(int **)malloc(12);
for(i=0;i<3;i++){
for (j=0;j<4;j++)
a[i][j]=j;
}
for(i=0;i<3;i++){
for (j=0;j<4;j++)
printf("%d",a[i][j]);
printf("\n");
}
free(a);
这是动态建立一个二维数组,三行四列的,用完了之后可以free掉。 也可以用在循环中。
C语言程序,需要用到可变长度的数组该怎么办?
尝试下链表吧。如果那几个数组还有一定的关系,比如一个人的姓名以及各科成绩之内,那就更推荐使用链表了
如何声明可变长度的数组 C语言
C99允许用变量做数组下标,也就是可以声明可变长度的数组,但是据我所知,目前还没有C99标准的编译器!VC也不是。但你可以用一个宏定义做嘛,改的时候改宏定义那一个地方就可以了。
C语言 可变长数组
具体你可以在网上搜。比如一个含有5个整数类型的数组可以这样定义a[5],但是也可以这样获得:int *a = (int *) malloc ( sizeof( int ) * 5 );也就是说我们给一个指针分配了内存,从而得到一个数组,而a[5]这样定义也是需要编译器在编译程序的时候分配内存的 而编译器会根据你的代码优化你...
c语言中长度可变的数组?
如果一个数组具有动态存储周期(也就是说,如果在语句块内定义数组,并且没有 static 修饰符),那么 C99 也允许把非常量表达式作为元素数量来定义该数组。这样的数组被称为长度可变数组(variable-length array)。而且,长度可变数组的名称必须是普通的标识符。长度可变数组不能作为结构或联合的成员。在下...
c51单片机,如何定义可变长数组?
用int定义长数组是16位的,没有问题的,可以定义的,也没有限制的。下面的程序是定义了30元素的。用单步执行来查看数组的值,用P1口显示高8位,用P0显示低8位,即可以赋值,也可以输出值的,没有问题,这个程序测试通过的。include <reg52.h> int number[30];unsigned char i;void main(){ for...
C语言怎么实现可变长度字符串
char * p = (char*)malloc(sizeof(char)*n)别忘了free C++和C#的string类型在最低层实际也是利用类似方法去做的 另外有一种 char str[SIZE_MAX]也有人喜欢用 realloc函数 只是不太推荐,主要原因是以前系统上这个函数操作会出问题,因为内存的原因 ...
怎样把一个数组长度变为可变的?
这里我们先建一个固定长度的数组,如下图,数组长度为1000 然后就需要用到循环了,并且设置一个按键“回车键”跳出循环。这样,不断循环就可以不断地将数字存进数组里。当我们按回车键的时候就会跳出循环,结束输入。而输入的数据就会保存在num数组之中,唯一的缺点就是数组长度是固定的。
C#中动态添加数组长度
数组(Array)的容量在声明的时候已经确定了,是不能改变的。楼主可以使用ArrayList来作为数组的代替,这是可变长度的数组容器,调用Add之类的方法来动态添加成员。而ArrayList的性能并不是很高且不支持多维数组,所以推荐使用泛型支持的List<T>。更加复杂的情况,比如维数不定容器等请自行构造容器类。请追问~...
C语言怎么定义一个二维数组可以使每行的输入长度任意
1、使用动态数组可以实现变长度数组。建动态数组,其他就像数组一样使用就行了。2、例程:int row=0; //函数int col=0; //列数int i;int ** arr=NULL; //下面假设存储的数据类型为intprintf(“请输入二维数组的行数和列数:”);scanf("%d%d",&row,&col);//要不要加判断输入...
C语言编程,我想使用一个长度几十万的float型数组,怎么办?
估计你把数组定义为局部变量了,局部变量是放在内存栈中的,而内存栈只有1M空间,数组太大了是放不下的。float *a=(float *)malloc(sizeof(float)*1000000);你试试会不会出错。