>  기사  >  백엔드 개발  >  가변 배열을 C 또는 C에서 직접 선언할 수 있습니까?

가변 배열을 C 또는 C에서 직접 선언할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-06 02:21:02523검색

Can Jagged Arrays Be Declared Directly in C or C  ?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.