表达式必须通过MPI世界大小在数组中具有恒定值错误

时间:2018-04-28 16:58:34

标签: visual-studio mpi

最近,我开始学习MPI编程,我尝试在Linux和Windows操作系统上编程。我在Linux上运行MPI应用程序没有任何问题,但是,我偶然发现了Visual Studio上的expression must have a constant value error

例如,我正尝试通过world_size获取MPI_Comm_size(MPI_COMM_WORLD, &world_size);并根据world_size创建数组(例如)

代码示例:

#include <mpi.h>
      int world_size;
      MPI_Comm_size(MPI_COMM_WORLD, &world_size);

      int database[world_size]; //error occured here

然而,当我在Linux上运行它时,它工作得很好,因为我能够执行代码,同时说明我希望拥有的进程数。我错过了什么吗?我遵循了这个特殊的youtube link,它教我如何在我的Visual Studio 2015上安装MS-MPI。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

使用非const值的自动数组大小实际上适用于gcc(https://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html)。但是,它被认为是一个坏主意,因为(正如您刚刚经历的那样)您的代码将不再可移植。您只需使用new更改代码即可创建数组。您可能希望生成错误以确保代码可移植:Disable variable-length automatic arrays in gcc