"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > C++ 프로그램은 VLA(가변 길이 배열)를 지원합니까?

C++ 프로그램은 VLA(가변 길이 배열)를 지원합니까?

2024년 12월 22일에 게시됨
검색:670

Do C   Programs Support Variable Length Arrays (VLAs)?

C의 가변 길이 배열: 잘못된 믿음 풀기

C의 가변 길이 배열(VLA)에 대한 전망은 논쟁의 대상이었습니다. 수년 동안. VLA는 C99 표준의 필수적인 부분이었지만 C에서의 존재 여부는 여전히 물음표로 남아 있습니다.

C99 사양에서는 배열 크기가 지정되지 않은 가변 길이 배열 선언을 명시적으로 허용합니다. 컴파일 시간이 아니라 실행 중에 동적으로 결정됩니다. 그러나 VLA에 대한 C의 입장은 그다지 간단하지 않습니다.

C 11 표준은 C99의 영향을 많이 받았지만 VLA에 대한 명시적인 지원을 제공하지 않습니다. 여기에는 C99를 참조하는 소개 텍스트가 포함되어 있지만 C99의 모든 기능이 자동으로 C에 통합된다는 의미는 아닙니다. C 11은 C99를 기반으로 고유한 기능과 확장을 추가합니다.

따라서 C99에 VLA가 있음에도 불구하고 C 11은 가변 길이 배열을 지원하지 않습니다. 이러한 제한은 VLA에 동적 메모리 할당이 필요하기 때문에 발생하며, 이는 메모리 관리 문제와 잠재적인 보안 위험을 초래할 수 있습니다. 결과적으로 C는 동적 메모리 할당을 효율적으로 처리할 수 있는 포인터나 벡터와 같은 컨테이너를 사용하여 동적으로 할당된 배열과 같은 대안을 선택했습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3