gpt4 book ai didi

c - 尝试 printf large char[] 时出现段错误

转载 作者:太空宇宙 更新时间:2023-11-04 05:20:06 25 4
gpt4 key购买 nike

以下代码对我来说是段错误。

#include <stdio.h>

int main(int argc, char **argv)
{
const int MEMSIZE = 1024*1024*10;
char memblock[MEMSIZE];
memblock[10] = '\0';

printf("%s", memblock);

return 0;
}

字符数组有大小限制吗?我忘记了我所有的 C,我在这里做一些愚蠢的事情吗?

最佳答案

用这个小程序找出你的最大堆栈大小,并检查你的数组是否更大

#include <stdio.h>
#include <sys/resource.h>

int main ()
{
struct rlimit rl;
int result = getrlimit(RLIMIT_STACK, &rl);
printf("max stack size: %u\n", rl.rlim_cur);
}

结果在我的主机上

max stack size: 10485760

局部变量存储在栈中,显然,它们不能大于他的最大大小

关于c - 尝试 printf large char[] 时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14455911/

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