当前位置:首页 » 编程语言 » c语言数组个数

c语言数组个数

发布时间: 2025-02-25 14:24:26

c语言 结构体数组的个数如何自己定义

C99标准出来以前,C语言不支持动态定义数组大小,只能采用动态分配指针方式来完成动态数组的个数定义。如:

structst{
intx,y;
charstr[10];
};
structst*array;
intn;
printf("inputn:");scanf("%d",&n);
array=(structst*)malloc(n*sizeof(structst));//动态分配n个结构体空间,接下来array的操作,与数组操作是相同的,如:array[0].x=1;

C99以后,C语言标准开始支持动态定义数组,但动态数组,在其确定个数之后,在其生命期中,就不可变了。如:

structst{
intx,y;
charstr[10];
};
intn;
printf("inputn:");scanf("%d",&n);
structstarray[n];//定义动态数组
array[0].x=1;

② C语言中一维数组的最长维数是多少谢谢!

ANSI C89标准中规定,一个数组的尺寸(下标)必须是一个整型常量培槐表达式以便于在编译时计算大小,而这里的所谓常量(或者常量表达式的运算结果),一般是指unsigned int。

16位编译器(比如Turbo C)中,unsigned int为16位,因此数组最多32767个数据。

32位编译器(比如Visual C++ 6.0)中,unsigned int为32位,因此数组最多4294967295个数据。

以上结论为理论值。

实际上,在VC++中,我们定义一个259025元素的整型数组,虽然可以编译通过,但是我们仍将得到一个运行时错误(runtime error)。这主要跟堆和栈的大小有关,详细情况请查阅操作系统相关资料。

错误代码好中裂范例:友闭

// VC++ 6.0 中
void main()
{
int a[259025]; // 运行时错误,259024是ok的。
char b[259025]; // ok。
char c[1036097]; // 运行时错误,1036096是ok的。
}

// TC2.0 中
void main()
{
int a[32768]; // 编译错误,32767是ok的。
char b[65536]; // 编译错误,65535是ok的。
}

③ c语言如何取数组元素个数

不能判断,因为C没有提供判断数组元素个数的功能。由于C不检查数组的边界,所以必须事先知道元素个数、所占字节数和元素类型三个要素中的两个才能确定另外一个,否则是无法判断的。比如有知道数组a[]占40个字节,又知道a[]是int型数组,那么元素个数就是40/sizeof(int)。其中sizeof(int)是用操作符sizeof来求得一个int类型所占字节数。

热点内容
什么软件下载安卓市场 发布:2025-09-24 21:26:40 浏览:315
发短信php 发布:2025-09-24 21:26:00 浏览:769
电脑是怎么存储数字的 发布:2025-09-24 21:00:24 浏览:773
c语言的什么意思 发布:2025-09-24 20:55:44 浏览:738
yellow系列zip解压码 发布:2025-09-24 20:47:24 浏览:69
瀑布线源码 发布:2025-09-24 20:33:41 浏览:417
安卓手机tif卡怎么装 发布:2025-09-24 20:20:54 浏览:427
javaandroid开发视频 发布:2025-09-24 19:59:08 浏览:802
新浪云存储怎么用 发布:2025-09-24 19:52:41 浏览:470
主机服务器连接电脑 发布:2025-09-24 19:39:36 浏览:272