배열 크기 혼동으로 인해 오류가 발생함
다음과 같은 동적 크기의 부동 소수점 배열을 선언하는 경우:
<code class="cpp">int size = 100; float x[size][2];</code>
"예상 상수 표현식" 오류가 발생할 수 있습니다. 이는 C에서 배열이 런타임 중에 결정되지 않고 컴파일 시간에 고정된 크기를 갖도록 요구하기 때문에 발생합니다. 여기서 크기 변수는 유효한 배열 차원으로 사용할 수 없습니다.
벡터를 사용한 솔루션
이 문제를 방지하려면 벡터 사용을 고려하세요.
<code class="cpp">std::vector<std::array<float, 2>> x(size);</code>
이렇게 하면 각 배열에 두 개의 부동 소수점이 포함된 배열 벡터가 생성됩니다.
대체 솔루션
또는 원시 메모리 할당을 new로 사용하거나 직접 생성할 수도 있습니다. 배열 유형:
<code class="cpp">// With new float (*px)[2] = new float[size][2]; // With custom array type template<typename T, size_t N> struct array { T data[N]; }; array<float, 2> myArray[size];</code>
추가 옵션
다른 옵션에는 쌍의 벡터 사용 또는 구문 도우미를 사용하여 고유한 배열 유형 롤링이 포함됩니다.
<code class="cpp">// Vector of pairs std::vector<std::pair<float, float>> x(size); // Custom array type template<typename T> struct identity { typedef T type; }; using FloatArray2 = identity<float[2]>::type; FloatArray2 myArray[size];</code>
위 내용은 동적 크기로 부동 배열을 선언하면 C에서 \'Expected Constant Expression\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!