> 백엔드 개발 > C++ > C/C에서 크기가 0인 배열을 정의하면 어떻게 되나요?

C/C에서 크기가 0인 배열을 정의하면 어떻게 되나요?

Mary-Kate Olsen
풀어 주다: 2024-12-26 04:19:08
원래의
986명이 탐색했습니다.

What Happens When You Define a Zero-Sized Array in C/C  ?

C/C에서 0-크기 배열 정의가 미치는 영향

C/C에서 배열을 정의할 때 배열의 크기 지정해야 합니다. int array[0]의 경우처럼 크기가 0인 배열을 정의하는 동작에 대해 호기심이 생길 때가 많습니다.

제공된 코드 예제에서 GCC는 컴파일할 때 오류나 경고를 발생시키지 않습니다. 이로 인해 컴파일 중에 길이가 0인 배열이 최적화되는지 여부에 대한 의문이 제기됩니다.

ISO 9899:2011(C99) 표준에 따르면 배열의 크기는 0일 수 없습니다. 표준에서는 배열의 크기가 상수 표현식인 경우 0보다 큰 값을 가져야 한다고 명시적으로 명시하고 있습니다. 이 규칙은 일반 배열과 가변 길이 배열(VLA) 모두에 적용됩니다.

언어 표준에도 불구하고 일부 컴파일러에서는 레거시 호환성이나 특정 목적을 위해 크기가 0인 배열의 정의를 허용할 수 있습니다. 그러나 크기가 0인 배열의 동작이 여러 컴파일러에서 일관된다는 보장은 없으며 크기가 0인 배열에 액세스하려고 하면 정의되지 않은 동작이 발생할 가능성이 높습니다.

따라서 권장됩니다. 크기가 0인 배열 정의를 방지하고 조건부 메모리 할당과 같은 다른 방법으로 배열 크기가 0이 될 수 있는 경우를 처리합니다.

위 내용은 C/C에서 크기가 0인 배열을 정의하면 어떻게 되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿