c语言数组个数未知如何处理呢?

如题所述

获取c语言数组个数可以使用sizeof函数获取数组元素个数,具体如下:

#include "stdio.h"

int main()

{

int arr[100]={0};

printf("数组大小=%d\n",sizeof(arr)/sizeof(arr[0])); //输出变量c的值

return 0;

}

运行结果如下:

运行结果

温馨提示:内容为网友见解,仅供参考
第1个回答  2023-11-04
C语言在数组个数未知的情况下,根据应用情况不同,有三种方式。
1,数组元素总数未知,但是需要存储的内容是已知的。
其实这是一种变相的已知个数,只是编程者不去计算总个数,把这个工作交给系统来做。这时可以通过数组个数留空,显式初始化数组进行声明。
比如
char s[] = "this is a test string";
就是初始化了这样一个数组s,其空间个数隐式的由初始化字符串决定。

2,数组元素总数未知,但最大规模已知。
比如不知道数组的总个数,但是确定不会超过100个,那么就可以定义一个100个元素的数组,供存储调用。

3,动态分配数组。
通过malloc函数,可以动态的分配数组,然后记录下当前分配的数组元素个数,并使用该数组。当数组空间不足时,可以通过realloc函数,重新分配空间,扩大数组元素个数。
比如
int size = 100;
int *p = (int *)malloc(sizeof(int) * 100); // 初始化分配100个元素空间。用size保存当前数组规模。
p = realloc(sizeof(int)*(size + 100), p);//当空间不足时,增加100个元素。
size+=100;//需要注意的是,必须同步维护size的大小,否则会出错。

C语言在数组个数未知的情况下有哪几种方式
其实这是一种变相的已知个数,只是编程者不去计算总个数,把这个工作交给系统来做。这时可以通过数组个数留空,显式初始化数组进行声明。比如 char s[] = "this is a test string";就是初始化了这样一个数组s,其空间个数隐式的由初始化字符串决定。2,数组元素总数未知,但最大规模已知。比如...

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

C语言中如何将未知个数的数存放在一个数组中?
要实现未知个数的元素存储于数组中,可以使用malloc()和free()来进行动态内存分配 。下面是一个使用动态内存的示例:include <stdio.h>#include <malloc.h>#include <stdlib.h>#include <string.h>int main(){int size;printf("输入建立元素的个数:");scanf("%d",&size);int *p = (int *)...

C语言中,对于不知道长度的数组怎样输入。。。
1、一维数组程序举例:冒泡法。得到结果进行输出。二维数组常称为矩阵。把二维数组写成行列的排列形式,可以形象的理解二维数组的逻辑结构。2、C语言中不能定义未确定个数的数组,不过可以用指针来变相的完成你的要求。3、输入数组需要使用指针获取地址后,就能对得到的数组就行操作了。

不知道一个数组里有多少个元素.怎么去读取它
假设是可以解决的方式:type a[] = {...}; \/\/ 这种情况就是不知道数组元素个数,“...”的意思是,对数组赋初值的初值个数不确定。type为任意正确的数据类型。那么:sizeof(a) \/ sizeof(type)就可以得到数组元素个数了。但是,如果把这个数组的数组名,通过实参传递给其它函数了,那么,上...

c语言里怎样输入未知个数的的数据?是输入整形,每次输入的数都是随机...
你可以自己写一个函数,初始化一个整型数组,然后每次数据量大于这个数组容量时,在扩容 伪代码如下:1.初始化一个10位的整型数组 int[],i=0,size=10 2.输入时判断i<=size int[i]=input 3.如果i>size 4.新建一个int[size+5]的数组,并将前面的数据copy到这个新数组中 5.重复步骤2 ...

C语言中如何将未知个数的数存放在一个数组中?
你可以用malloc来实现。malloc是用于动态分配的,即可以在你需要的时候进行分配 函数返回分配地址的空间首地址,可以这样实现 int n;scanf("%d",&n);int *a=(int*)malloc(n*sizeof(int));malloc的参数是分配空间的大小,n*sizeof(int)表示分配n个整型的空间 因为malloc返回的首地址,但是类型是...

c语言如何定义未知个数的数组
比如你要申请int型的未知个数数组。可以以下程序#include<stdio.h>#include<stdlib.h>main(){ int *p; int n; printf("请输入录入个数N:\\n"); scanf("%d",&n); p = (int *)malloc(n*sizeof(int)); \/\/然后把*p当作数组指针用就可以了。。~~~} 本回答由电脑网络分类达人 郭强推荐 举报| 答案...

C语言编译出错,数组未知大小
定义数组时, 数组大小只能为常量,不能使用变量,因为变量是在运行期间才能得到的值,而数组大小必须预先进行分配连续的内存空间,所以只能使用常量,如果需要动态的数组,只能使用malloc进行申请一定大小的内存,但是一定要用free进行释放,否则会发生内存泄露 ...

C语言中如何控制未知长度的数组的输入
方法一:每输入一次,都询问是否继续输入 while(1){ scanf("%d",&a[i]);printf("是否继续?(Y\/N)");c=getchar();if(c=='Y'||c=='y')continue;else break;} 这种方法比较笨 方法二:规定输入的范围,例如要输入的是正整数,那么可以检测输入的是否合法,如果输入了负数就结束循环 while(...

相似回答
大家正在搜