gpt4 book ai didi

c++ - 错误 C2057 : expected constant expression

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:50:16 25 4
gpt4 key购买 nike

在 VC++ 2012 中做一些 AudioDSP 时遇到了为缓冲区分配内存的问题

int size = input.getSize();
float buf[size];

在编译时我收到错误“error C2057: expected constant expression”看起来代码在 C99 中工作,而不是 C++。知道如何解决这个问题吗?

最佳答案

那是因为 C99 支持可变长度数组,而 C++ 不支持(至少 C++98 和 C++11 不支持)。以下是一些解决方法:

  • 重构您的代码以使用 std::vector或任何合适的容器。如果可能,这将是首选方法。

  • 找到支持 VLA 作为扩展的编译器(例如,带有选项 -std=c++gnu98-std=gnu++11 的 GCC)。

无论如何,如果您没有那么多代码需要重构,请尝试更改您的代码以使用标准容器而不是 VLA。

关于c++ - 错误 C2057 : expected constant expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17062524/

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