배열[n] 대 배열[10]: 변수 대 숫자 리터럴로 배열 초기화
C에서 초기화할 때 오류가 발생합니다. 코드에서 볼 수 있듯이 크기가 변수인 배열 아래:
int n = 10; double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
오류: "가변 크기 개체 'tenorData'가 초기화되지 않았을 수 있습니다." C에서는 가변 크기 배열이 허용되지 않기 때문입니다.
G는 이 동작을 확장으로 허용하지만 기술적으로 C 표준을 준수하지 않습니다. 이 문제를 해결하려면 동적으로 메모리를 할당하거나 표준 컨테이너를 사용할 수 있습니다.
동적 메모리 할당
int n = 10; double* a = new double[n];
delete []를 사용하여 할당된 메모리를 해제하는 것을 기억하세요. 에이;
표준 컨테이너
int n = 10; std::vector<double> a(n);
상수 배열
적절한 배열이 필요한 경우 아닌 상수 값으로 초기화됨 변수:
const int n = 10; double a[n];
C 11에서는 함수에서 배열 크기를 얻을 때 constexpr을 사용할 수 있습니다.
constexpr int n() { return 10; } double a[n()];
위 내용은 가변 크기로 C 배열을 초기화하면 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!