是否可以从stdin输入指针的地址?

Mar*_*ner 2 c++ windows interprocess

不久之前,我有一个简单的进程间通信的想法:一个进程向指针输出一个地址,我将其复制到另一个进程的输入,并更改原始变量.

我这样实现了:

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    bool p;
    cin>>p;
    if(p){
        int n;
        n=0;
        cout<<&n;
        cin.get();
            cin.get();
            cout<<n;
        }else{
            int *point,n;
            scanf("%p",&point);
            cout<<point;
            cin>>n;
            *point+=n;
        }
        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

我使用scanf是因为cin抱怨,并且不会编译.我尝试用两个进程运行它,但在我启动第二个实例后,输入指针的地址,如第一个输出的那样,它就冻结了.因为我只能访问Windows,所以我不知道它是否有SIGSEGV,或者它是否做了完全不同的事情.

是不是只是我试图改变另一个进程崩溃的变量的值,还是其他阻止我的东西呢?

syn*_*gma 5

你不能这样做,因为第一个进程将无法访问第二个进程的内存地址空间(在常见的操作系统中,包括Windows和Linux).