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