C와 C의 가변 배열
비정형 배열이라고도 하는 가변 배열은 구성 배열의 길이가 서로 다른 데이터 구조입니다. 많은 프로그래밍 언어가 가변 배열을 지원하지만 C와 C는 기본적으로 이 기능을 제공하지 않습니다.
질문: 가변 배열을 C 또는 C에서 선언할 수 있습니까?
답변: 아니요, 가변 배열은 C나 C에서 직접 선언할 수 없습니다. 제공된 예제에 설명된 대로 C 또는 C에서 가변 배열을 선언하려고 하면 첫 번째 차원을 제외한 모든 차원에 대해 경계를 지정해야 한다는 오류 메시지가 나타납니다.
대체 구현:
C에서 이 제한을 해결하려면 포인터 배열을 사용하여 들쭉날쭉한 배열을 시뮬레이션할 수 있습니다. 배열의 각 포인터 요소는 자체 크기를 가진 별도의 배열을 가리킬 수 있습니다. 이 접근 방식은 다음 예에서 설명됩니다.
<code class="c">int *jagged[5]; jagged[0] = malloc(sizeof(int) * 10); jagged[1] = malloc(sizeof(int) * 3);</code>
이 예에서 jagged 배열은 5개 포인터의 배열로 초기화됩니다. 각 포인터는 정수 배열을 가리키며, 각 배열의 요소 수는 가변 배열 선언의 해당 크기에 따라 결정됩니다.
이 포인터 기반 접근 방식을 사용하면 C 프로그래머는 가변 배열의 기능을 시뮬레이션할 수 있습니다. 배열을 사용하여 구성 배열에서 다양한 크기의 데이터 구조를 생성할 수 있습니다.
위 내용은 가변 배열을 C 또는 C에서 직접 선언할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!