从地址构造C中的指针

Nat*_*ndt 1 c pointers mpi

不知道为什么我不能得到这个,但..

我最初从另一个处理器获得一个指针的地址,我需要一个指向该地址的项目的指针.不要太担心MPI_Recv,只要知道我从其他处理器获取信息.所以我有:

MPI_Recv(&a, sizeof(int), MPI_INT, 0, 1, MPI_COMM_WORLD, &status);  

c = a;
printf("%d",c[0]);
Run Code Online (Sandbox Code Playgroud)

为什么这会给我一个分段错误?我已经尝试在设置c = a之前为c分配内存,它仍然会出现故障.想法?我已经试着在网上看了很长一段时间,却找不到任何东西.提前致谢

NPE*_*NPE 6

每个进程都有自己独立的虚拟地址空间.来自一个过程的指针在另一个过程的上下文中是无意义的.

你有几个选择:

  1. 使用线程而不是进程.
  2. 使用共享内存.
  3. 发送实际数据而不仅仅是指针.

如果您的进程可以驻留在不同的计算机上,那么只有最后一个选