访问内存地址并获得不同的结果

时间:2019-01-30 06:44:03

标签: c++ memory-management

我正在使用两个单独的Eclipse C ++实例访问相同的内存地址,并且得到了不同的结果。为什么会这样?

我正在同时为C ++运行两个不同的Eclipse实例。第一个实例(Testrun.cpp)正在为内存分配一个值,然后打印内存地址,然后停止,因为它正在等待用户输入。我要获取打印的内存地址,并将其分配给第二个实例(Hello.cpp)中的指针。第二个实例正在访问内存地址,而不打印由Testrun.cpp实例分配的整数。

为什么会这样?我想写一些软件来访问正在运行的另一个应用程序的内存。

// Testrun.cpp
#include <iostream>
using namespace std;

int Tito(int g);

int main()
{
    int l;
    int *e;
    int i = 11;
    //int *p = (int *)0x73fe44;
    e = &i;
    cout << &i << endl; // prints !!!Hello World!!!
    //cout << e << endl;
    //*e = 4;
    //int *p = (int *)0x28ff43;
    //*p = 99;
    //cout << i << endl;
    cout << "Hello" << endl;
    cin >> l;
    cout << *e << endl;
    return 0;
}

int Tito(int g)
{
    return g;
}



// Hello.cpp
#include <iostream>
using namespace std;

int main()
{
    //cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
    int i = 23;
    int *g;
    g = &i;
    *g = 232;
    int *p = (int *)0x73fe40;
    cout << *p << endl;
    return 0;
}

0 个答案:

没有答案