【发布时间】:2021-01-10 05:56:22
【问题描述】:
我正在为 C/C++ 开发人员使用 Eclipse IDE,同时我也在学习 C。理论上,当我输入大于我分配的字符串大小时,应该会以某种方式发生溢出。但这一切都很好,我看不到想要的麻烦。
int main()
{
char nameArr[15];
printf("Type name: ");
scanf("%s",nameArr);
printf("You are %s.\n",nameArr);
return(0);
}
我想故意看看溢出的情况,但我做不到。例如,在运行时,如果我键入 Wolfeschlegelsteinhausenbergerdorff,它会正确输出,而 Eclipse 中不会出现任何与溢出相关的消息。我不知道它是 C 的特性还是 Eclipse 的特性。有谁知道为什么尺寸过大也没关系?
【问题讨论】:
-
C 不提供边界检查,这取决于你。当您溢出缓冲区时,这是未定义的行为,其结果之一是它看起来可以正常工作。
标签: c eclipse c-strings buffer-overflow