>  기사  >  백엔드 개발  >  C/C에서 가변 배열을 어떻게 만들 수 있습니까?

C/C에서 가변 배열을 어떻게 만들 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-06 06:59:02925검색

How Can You Create Jagged Arrays in C/C  ?

Jagged Arrays in C/C: The Mystery Unveiled

이름과 달리 들쭉날쭉한 배열은 비정형 배열이라고도 알려져 있습니다. 하위 배열의 길이가 서로 다른 배열의 배열입니다. 이 개념은 JavaScript 및 Python과 같은 언어 어디에나 있지만 C/C는 이러한 유형의 데이터 구조를 직접 지원하지 않습니다.

C/C의 기본 가변 배열 부족

C 또는 C에서 다음 코드를 컴파일하는 동안 오류가 발생하는 경우:

<code class="cpp">int jagged[][] = { {0,1}, {1,2,3} };</code>

"`jagged'를 다차원 배열로 선언하려면 첫 번째 차원을 제외한 모든 차원에 대한 경계가 있어야 합니다."라는 메시지는 다음을 암시합니다. C/C 다차원 배열은 첫 번째 차원을 제외한 모든 차원의 길이를 지정해야 합니다. 즉, 가변 배열은 기본 C/C 언어 사양의 일부가 아닙니다.

C에서 가변 배열 에뮬레이션

C에서 가변 배열 기능을 구현하려면 , 대체 접근 방식으로 되돌아가야 합니다. 그러한 방법 중 하나는 포인터 배열을 활용하는 것입니다.

<code class="cpp">int *jagged[5];

jagged[0] = malloc(sizeof(int) * 10);
jagged[1] = malloc(sizeof(int) * 3);</code>

이 예에서 jagged는 5개 포인터의 배열입니다. 각 포인터는 정수를 저장하기 위해 할당된 메모리 블록을 가리킵니다. 포인터 배열을 사용하면 다양한 크기의 하위 배열을 생성하고 메모리 할당 및 관리에 대한 제어를 유지할 수 있습니다.

위 내용은 C/C에서 가변 배열을 어떻게 만들 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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