当前位置:首页 » 编程语言 » c语言数组空间大小多少合适
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言数组空间大小多少合适

发布时间: 2022-04-15 18:47:28

c语言里数组的最大长度是多少

与机器条件、内存空间以及程序运行所用空间和编译器有关。好点的机器 1000000是能到的。

我的电脑是98年的,只能到100000

Ⅱ C语言对数组长度有没有限制

数组是静态分配的空间,应该是在栈上,数组你想分配100万个元素的话,如果是char数组,占用的空间就是1M,如果这个值超过了允许的栈空间大小,肯定会出错的。
栈空间视不同的机器不同,至于具体是在编译环境中设置还是在操作系统中设置,我就不知道了。
另外,最好不要用这么大的数组,遍历、修改操作都不方便,性能太低。

Ⅲ c语言中最大可以申明多大的数组

由于数组申请的是连续存储空间,
所以存在最大申请的限制,也就是说最大申请空间不能大于当前的栈空间
栈空间是可调的,默认的应该为1M,
但是最大值也不会大于全部栈的总size

如果是动态申请的话(例如,动态数组,链表等),则和堆的大小有关系

Ⅳ C语言的数组最大可以定义多长,求高手解答,请不要很笼统说是系统内存什么的还是硬件限制,麻烦详细解释一

数组只是一个语法概念,可以认为你是要分配一段连续的内存,在应用层有2种方式:

  1. 全局变量的方式,在函数外声明,最大应该不能超过4GByte(32bit寻址最大值),int就除与4,doubel再除2

  2. 局部变量的方式,在函数内声明,属于栈内存,就更小,确实跟操作系统和C库相关,进程都有栈限制的,可以输入命令ulimit查看,默认也就10K左右,当然你可以设置更大。


不会有数专门说这个数组大小的问题,它涉及的知识点会,栈内存,data段,以这些为关键字去看,整理理解吧。

Ⅳ C语言关于数组空间大小的问题

是这样的:定义char a[1]的时候,计算机给这个数组分配了存放空间,这个空间的首地址为a,空间大小为仅仅能存放一个字符的空间。但是为什么你输入很多字符,然后运行,仍然能正确输出呢?问题在于a是一个首地址,c默认是你知道你要操作的对象是多长的。如果你把3个字符“xyz”强行送给地址a,那么,他就把x存放在a的位置,y存放在a+1的位置,z存放在a+2的位置,依次向后递增,这就是指针。

由于你输入的字符串并不是很长,相对于现在计算机的内存,微不足道,所以没有发生溢出的错误,程序就不报错。如果你输入很长的字符串,恰巧到了a+n,而a+n正在被其他进程使用,那么就惨了,计算机可能提示你溢出了,或者内存非法使用了。此时应该定义足够长的数组,比如char a[1000],使计算机一开始就给你分配足够的内存,问题就不会再出现了。

但愿能帮到你噢~~~

Ⅵ 关于C语言中定义数组大小的问题(最多能定义多少)

查了一下,这个错误是栈溢出。 栈的大小是比较有限的, 不能定义这样大的东西

需要一个大的数组的话应该定义一个指针,然后用malloc分配内存空间给他,这个是在堆上分配的,可以分配很多

Ⅶ c语言数组的大小问题

先用循环统计的方式获得数量(作为数组长度),然后赋值给一个const常量,最后用这个常量作为数组长度即可。
如果无法估计需要的最大长度,可以直接把数组长度定义得尽可能地长,多余的部分就不用了就行了。

如果说你要的是不定长的数组(动态数组)的话,还是用集合(或者叫容器)来替代数组(静态数组)比较好。(如STL中的容器vector就可以实现,另外字符串可以使用String类类型,但这些必须在C++里面做)

Ⅷ C语言定义数组一定要指定大小吗

是的,c中数组定义时要指定大小。

当然,万事也不是绝对的。例如:1.作为形参的时候,可以不指定,因为在函数调用的时候,数组会转为指针的。2.当为字符串数组时,char ST[]="hello word"这儿定义了一个ST字符数值,不需要你自己去指定大小,系统会自动生成长度为11.

Ⅸ C语言中如何计算一个数组占内存多少空间

如果一个数组的长度是n(即有n个元素),元素的类型是XXX,则n*sizeof(XXX)就是这个数组所占内存空间的字节数。

Ⅹ C语言中如何计算一个数组占内存多少空间

C语言中数组的sizeof值等于数组所占用的内存字节数。

C语言中有一个专门用于检测类型或变量或数组在内存中所占有的空间(字节数)的操作符sizeof,用sizeof可以直接检测出数组在内存占有的字节数。

语法规则是:sizeof(x); (识别没有歧义时也可写成sizeof x;)——其中x是类型名、变量名或数组名等,返回x所占字节数(int型)。

(10)c语言数组空间大小多少合适扩展阅读:

sizeof的使用规则:

1、基本数据类型的sizeof:

这里的基本数据类型指short、int、long、float、double这样的简单内置数据类型,由于它们都是和系统相关的,所以在不同的系统下取值可能不同,这务必引起我们的注意,尽量不要在这方面给自己程序的移植造成麻烦。一般的,在32位编译环境中,sizeof(int)的取值为4。

2、指针变量的sizeof:

指针变量的sizeof值与指针所指的对象没有任何关系,正是由于所有的指针变量所占内存大小相等,所以MFC消息处理函数使用两个参数WPARAM、LPARAM就能传递各种复杂的消息结构(使用指向结构体的指针)。