gpt4 book ai didi

c - C 中自动变量的大小限制是多少?

转载 作者:行者123 更新时间:2023-11-30 14:29:32 29 4
gpt4 key购买 nike

Possible Duplicate:
Checking available stack size in C

EDIT2:我的问题是 Checking available stack size in C 的重复请删除。

编辑:我正在寻找有关大小限制的信息,而不是有关变量使用的一般信息。

可以确定大小限制吗?是否依赖于系统?

例如课本上经常写char string[1024];

但是如果一个人高兴地写 char string[99999999] 他可能会崩溃。

最佳答案

这将取决于很多因素(我是从 UNIX 机器的角度编写的)

  1. 堆栈段的 ulimit。堆栈段的 ulimit 将决定可以为进程分配多少堆栈空间。
  2. 进程的位数。即使堆栈的 ulimit 是无限的,也有一个最大限制。 32 位有不同的最大堆栈大小,64 位有不同的最大大小。取决于操作系统架构和运行环境。
  3. 机器中的可用内存。有一些分页算法,在分配实际内存时保留分页设备中的空间。如果没有空间,该过程甚至不会启动。
  4. 巨大的自动变量大小可能会导致堆栈和堆冲突。

可能还有更多......但完全取决于操作系统架构和运行时环境

关于c - C 中自动变量的大小限制是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4508289/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com