我正在做一个缓冲区溢出问题,我试图打印你好世界。下面是我的代码,但是当我与另一个文件一起运行此文件时,我遇到了分段 11 问题。“./executable < input.cpp(这是下面的文件)。我做错了什么来解决缓冲区溢出问题?
#include<stdio.h>
using namespace std;
main()
{
printf("A");
//00000b00
for (int i = 0; i < 4; i++)
printf("%c%c%c%c",0x00,0x0b,0x00,0x00);
}
下面是我试图打印 hello world 的实际代码。以上是我的输入字符串。
#include <iostream>
using namespace std;
int i;
unsigned int* p;
void f1() {
int a=10;
char str[4];
cout << "Please enter a string:";
while (!cin.eof()) {
cin.get(str[i]);
i++;
}
printf("address of str is:%x\n",str);
cout << "The string you entered is:";
printf("address of a is:%x\n",&a);
cout << str << endl;
}
void f2()
{
cout << "Hello World!\n";
}
main()
{
printf("The address of function f2:%08x\n",f2);
f1();
}