gpt4 book ai didi

c++ - 英特尔 C/C++ 编译器在数组初始化期间抛出错误

转载 作者:太空宇宙 更新时间:2023-11-04 08:10:59 24 4
gpt4 key购买 nike

我有常规的 C++ 代码,用于将数组初始化为一个值,该值可以在 Cygwin 上使用最新的 gnu 编译器进行编译:

int main(){
x = 10;
int my_array[x][x][x] = {0};
double my_other_array[x][x][x][x] = {0.};
return 0;
}

但是,当我将它转移到集群并执行 intel 编译器(以及所有用于麦克风协处理器的花哨的东西)时,代码将无法编译,并且失败并出现以下错误:

error: variable "my_array" may not be initialized

当我将实际整数而不是变量放入数组框中时,错误消息消失了。

然而,我的数组的住房功能(在实际代码中,不是我的例子)被调用,输入确定数组的大小......所以,虽然数组大小在执行期间不会改变,但我可以'只需将数字放在数组框(呃,括号)中——它们需要是变量。


如何使用英特尔编译器实现此功能?

最佳答案

可变大小数组的使用是编译器扩展,不是标准的 C++ 语言功能。 (这是 C 语言较新规范的标准功能。)英特尔编译器不支持此功能。

要声明可变大小的数组,您需要使用 std::vector 或类似的东西。

关于c++ - 英特尔 C/C++ 编译器在数组初始化期间抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39523196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com