首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MPI-2中的分段故障

MPI-2中的分段故障
EN

Stack Overflow用户
提问于 2011-11-16 01:34:46
回答 1查看 251关注 0票数 0

你知道为什么下面的代码会给我一个段错误吗?

代码语言:javascript
复制
buf_int = new int[12];
buf_int[0] = stx1.min;
buf_int[1] = stx1.max;
buf_int[2] = stx2.min;
buf_int[3] = stx2.max;
buf_int[4] = sty1.min;
buf_int[6] = sty2.max;

MPI_Bcast(&buf_int, 12, MPI_INT, 0, MPI_COMM_WORLD);

stx1.min = buf_int[0];

如果我注释掉最后一行,我不会得到段错误,但是如果我把它留在里面,我会得到

代码语言:javascript
复制
=====================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   EXIT CODE: 11
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
=====================================================================================

错误被证明是分段错误。如果不能从给出的代码中推断出错误,我可以包含更多。

buf_int被声明为

代码语言:javascript
复制
int* buf_int;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-16 01:59:33

由于MPI_Bcast的签名是这样的:

代码语言:javascript
复制
int MPI_Bcast(
  void *buffer,
  int count,
  MPI_Datatype datatype,
  int root,
  MPI_Comm comm
);

从它的documentation中提取,您应该这样调用该函数:

代码语言:javascript
复制
MPI_Bcast(buf_int, 12, MPI_INT, 0, MPI_COMM_WORLD);

也就是说,传递buf_int作为第一个参数,而不是传递&bug_int

您可以通过向下滚动page查看示例代码,并比较它们的用法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8140607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档