【发布时间】:2013-07-19 08:15:47
【问题描述】:
我一直在研究缓冲区
#include <iostream>
using namespace std;
int main()
{
char input[3];
for(int i=0;i<100;i++){
cin>>input[i];
}
return 0;
}
程序继续运行,没有停止,也没有溢出的迹象(在 2 个 linux 盒子中测试)
如果我交换也会发生同样的情况:
cin>>input[i];
与:
input[i]='a';
【问题讨论】:
-
不会溢出堆栈,而是写入数组末尾。显然你没有很努力地学习......顺便说一句,将循环大小更改为 4100 并且您更有可能(尽管仍不能保证)发生崩溃或其他情况
-
是的,抱歉,我没有完整阅读您的回答。然而,在许多教程中,他们使用这样的代码来编辑函数的 ret 地址
-
这不是堆栈溢出,而是缓冲区溢出。
-
是的,缓冲区溢出,抱歉
-
很抱歉在提问之前没有彻底搜索.....我认为这个问题已经结束。谢谢
标签: c++ arrays buffer overflow boundary