【发布时间】:2015-03-30 02:39:07
【问题描述】:
我目前正在尝试读取两个字符串 s 和 t,它们将被输入到 stdio。它们将在不同的行中输入。
以下代码段错误。
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
char t[5000000];
char s[5000000];
fgets(t,50000,stdin);
fgets(s,50000,stdin);
printf("%c",t[1]);
}
但是,单个 fgets 不会。
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
char t[5000000];
char s[5000000];
fgets(t,50000,stdin);
printf("%c",t[1]);
}
其他帖子讨论了一些返回和“/n”问题,但我不明白问题到底是什么。
【问题讨论】:
-
把
t和s改成static char[]看看是否栈溢出 -
@timrau 这是堆栈溢出
-
是的,就是这样,谢谢!!你能解释一下为什么会解决它吗?
标签: c arrays string segmentation-fault fgets