当前位置:首页 » 编程语言 » 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-02-25 17:02:08 浏览:162
gdblinux调试 发布:2025-02-25 17:01:55 浏览:110
安卓左上角的中国移动怎么改 发布:2025-02-25 17:01:17 浏览:744
电话访问系统 发布:2025-02-25 17:01:07 浏览:345
在线直播服务器搭建 发布:2025-02-25 16:50:48 浏览:431
和平精英改性别为什么变安卓 发布:2025-02-25 16:47:27 浏览:152
一梦江湖安卓版怎么用ios玩 发布:2025-02-25 16:44:11 浏览:28
四川哪里托管服务器好云主机 发布:2025-02-25 16:44:00 浏览:3
运算法则加法 发布:2025-02-25 16:32:25 浏览:134
pb编程现状 发布:2025-02-25 16:20:40 浏览:328