2
VC++ 2012 년 일부 AudioDSP을하는이와 컴파일에서오류 C2057 : 예상 상수 식
int size = input.getSize();
float buf[size];
내가 오류가 버퍼 메모리를 할당에 문제가 있어요 "오류 C2057 : 예상 상수 표현은"코드 같은데 C99이 아닌 C++에서 작동합니다. 이 문제를 어떻게 해결할 생각인가요?
VC++ 2012 년 일부 AudioDSP을하는이와 컴파일에서오류 C2057 : 예상 상수 식
int size = input.getSize();
float buf[size];
내가 오류가 버퍼 메모리를 할당에 문제가 있어요 "오류 C2057 : 예상 상수 표현은"코드 같은데 C99이 아닌 C++에서 작동합니다. 이 문제를 어떻게 해결할 생각인가요?
왜냐하면 C99은 가변 길이 배열을 지원하기 때문입니다. C++은 (적어도 C++ 98이나 C++ 11은 지원하지 않습니다. 여기에 몇 가지 해결 방법은 다음과 같습니다
가 std::vector
또는 적당한 용기를 사용하도록 코드를 리팩토링. 가능한 경우이 방법이 선호됩니다.
확장명으로 VLA를 지원하는 컴파일러를 찾습니다 (예 : -std=c++gnu98
또는 -std=gnu++11
옵션이있는 GCC).
어쨌든 리펙토링 할 코드가 많지 않은 경우 VLA 대신 표준 컨테이너를 사용하도록 코드를 변경하십시오.