C语言定义数组但是数组长度不确定怎么处理
发布网友
发布时间:2022-10-08 19:19
我来回答
共2个回答
热心网友
时间:2023-11-16 14:39
假设数组存的是int型 那么 你先申请10个元素 int* a = (int*)malloc(sizeof(int)*10); 如果又来了个元素,那么你就可以 a=(int *)realloc(a,11*sizeof(int)); 求元素个数int i,n=1; for(i = 0;(a+i)!=NULL;i++) { ; } n=i+1;//n就是元素个数
热心网友
时间:2023-11-16 14:40
一般不是这样定义的,我一般都是,先定义好数组长度,如int
a[100],就是先把数组定义的比较大就可以了,然后再
int
n;
scanf("d%",&n);
int
a[n];
C语言中想定义一个不知道大小的数组怎么办
有几种方法:1)可以定义一个足够大的数组,保证够用就好。2)使用链表结构,用一个申请一个元素的空间 3)用malloc先申请一定的空间作为数组的空间,等到不够用的时候,再重新malloc一个更大的空间,将旧的那个空间里的数据拷贝过来,作为数组的新的空间,然后free掉旧的那个空间即可。
C语言定义数组但是数组长度不确定怎么办
假设数组存的是int型 那么 你先申请10个元素 int* a = (int*)malloc(sizeof(int)*10);如果又来了个元素,那么你就可以 a=(int *)realloc(a,11*sizeof(int));求元素个数int i,n=1;for(i = 0;(a+i)!=NULL;i++){ ;} n=i+1;//n就是元素个数 ...
C语言中,对于不知道长度的数组怎样输入。。。
2、C语言中不能定义未确定个数的数组,不过可以用指针来变相的完成你的要求。3、输入数组需要使用指针获取地址后,就能对得到的数组就行操作了。
请问在C里面,我要定义一个数组,但是数组的大小不确定
你这么写的话,那个n还是一个变量,c语言首先需要编译才能执行,而编译的时候编译器就认为这个n是不确定的,所以他不知道要给你分配多大的存储空间,我建议你可以定义一个指针来做,下面是一个例子。main(){vectorintn;intx;while(cinx)n.push_back(x);//建议你看一看关于vector的操作,访问vect...
C语言里面要定义一个字符串数组,数组元素个数不确定,每个元素的长度也不...
你可以用动态分配内存的方法,比如你要建立一个字符串数组:char *str;str=(char *)malloc(n);n是变量,可以在确定了变量的值后再用以上代码分配内存,而str字符串可以以一般数组的用法使用,比如 str="hello";的话 str[1]='l';最后别忘了释放内存 free(str);
c语言中如何给不确定大小的数组定义并使用?
C语言中没有明确的“动态数组”(也就是不确定大小的数组)这个概念,只能用动态内存分配来实现,我给你一个思路:创建数组——用动态分配分配一个指定大小的内存(数组)销毁数组——释放动态分配内存 访问元素——通过内存指针间接引用 增加元素——再分配一块新内存区域(大小为增加后的大小),把久...
请问在C里面,我要定义一个数组,但是数组的大小不确定
在C语言中,只有在堆上才能申请动态数组。通过malloc可以申请用户自由输入长度的数组,通过realloc可以将已有的内存区域重新分配(扩充或缩减)。
c语言:我想定义一个行数为n的数组,为什么还是告诉我不确定数组的大小...
你这么写的话,那个n还是一个变量,c语言首先需要编译才能执行,而编译的时候编译器就认为这个n是不确定的,所以他不知道要给你分配多大的存储空间,我建议你可以定义一个指针来做,下面是一个例子。假设数组存的是int型 那么 你先申请10个元素 int* a = (int*)malloc(sizeof(int)*10);如果又来...
请问C语言中,如何在结构体内定义长度不确定的数组呢?
两种方法:一种是采用指针, 动态分配内存 另一种请搜索"柔性数组", 这种方式同样需要在堆中动态分配内存.
C语言中定义数组时可以不定义长度吗,这样:uint8 array[]。看到一个...
C语言中可以定义个数不确定的动态数组,但不是用uint8 array[];这样来定义的,这样会报错。定义个数不确定的动态数组必须先声明一个指针,然后用malloc为这个指针分配一段连续的空间,然后退出程序的时候要记得使用free释放这些变量空间,否则会造成内存泄露。比如你要定义一个字符型的动态数组,可以先声明...