gpt4 book ai didi

c++ - 错误 C3863 : array type 'double [length]' is not assignable

转载 作者:行者123 更新时间:2023-12-04 16:25:44 26 4
gpt4 key购买 nike

在 windows MSVC 中,我试图编译下面的代码。

void foo(std::vector<double> &bar){
const long int length = bar.size();
double a[length]; //error C3863: array type 'double [length]' is not assignable
for(int i=0; i < length; i++){
a[i]=0.0;
}
//do some other things
}

代码在 xcode 中运行良好。

当我切换到 MSVC 时,用命令行编译代码:

cl /EHsc main.cpp /std:c++17

然后出现“错误 C3863:数组类型 'double [length]' 不可赋值”。

为什么不一样?如何摆脱错误?

最佳答案

double a[length]; 不是可移植的 C++,因为该语言没有实现可变长度数组。

std::vector<double> a(bar.size());

是替代品。请注意,元素将为您初始化为零,因此您可以删除初始化循环。

关于c++ - 错误 C3863 : array type 'double [length]' is not assignable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64777108/

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