小编fau*_*pin的帖子

MPI_Bcast一个动态的2D阵列

我试图将带有bcast的动态二维数组传递给所有排名.我有以下代码.

#include <stdlib.h>
#include <mpi.h>

int main(int argc, char **argv)
{   
    float **array;
    int rank,size,i,j;

    MPI_Init(&argc,&argv);
    MPI_Comm_rank(MPI_COMM_WORLD,&rank);
    MPI_Comm_size(MPI_COMM_WORLD,&size);

    if(rank==0)
    {
        array = (float **)malloc(10*sizeof(float));
        for(i=0;i<10;i++)
            array[i] = (float *)malloc(10*sizeof(float));

        for(i=0;i<10;i++)
        for(j=0;j<10;j++)
            array[i][j]=i+j;
    }
    MPI_Bcast(array,10*10,MPI_FLOAT,0,MPI_COMM_WORLD);
    MPI_Finalize();
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,我无法理解我得到分段错误.谁知道问题是什么?

c mpi

9
推荐指数
2
解决办法
2万
查看次数

标签 统计

c ×1

mpi ×1