最近,我开始学习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。
非常感谢任何帮助。
答案 0 :(得分:0)
使用非const值的自动数组大小实际上适用于gcc(https://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html)。但是,它被认为是一个坏主意,因为(正如您刚刚经历的那样)您的代码将不再可移植。您只需使用new
更改代码即可创建数组。您可能希望生成错误以确保代码可移植:Disable variable-length automatic arrays in gcc