C 및 C의 들쭉날쭉한 배열
프로그래밍 언어에 대한 토론에서 "가변 배열"이라는 용어를 접할 수 있습니다. 그러나 이 개념은 C 또는 C에서는 기본적으로 지원되지 않습니다. 가변 배열은 각 요소가 가변 길이 배열이 될 수 있는 배열을 의미합니다.
주어진 코드 예제에서는 다음 구문을 사용하여 가변 배열을 선언하려고 시도했습니다.
<code class="c">int jagged[][] = { {0,1}, {1,2,3} };</code>
그러나 C에서는 컴파일할 때 첫 번째 차원을 제외한 모든 차원에 경계가 지정되어야 함을 나타내는 오류가 발생합니다. C에서는 컴파일 시 배열의 크기가 고정되어야 하기 때문입니다.
C/C에서 들쭉날쭉한 배열을 시뮬레이션하기 위해 일반적으로 사용되는 접근 방식은 포인터 배열을 활용하는 것입니다. 이 배열의 각 포인터는 가변 배열의 요소를 저장할 수 있는 동적으로 할당된 메모리 블록을 가리킵니다.
C의 예:
<code class="c">#include <stdlib.h> int main() { // Initialize array of pointers int *jagged[5]; // Allocate memory for each pointer and set array values jagged[0] = malloc(sizeof(int) * 2); *(jagged[0]) = 0; *(jagged[0] + 1) = 1; jagged[1] = malloc(sizeof(int) * 3); *(jagged[1]) = 1; *(jagged[1] + 1) = 2; *(jagged[1] + 2) = 3; // Use the jagged array // ... // Deallocate memory free(jagged[0]); free(jagged[1]); return 0; }</code>
위 내용은 C와 C에서 가변 배열을 시뮬레이션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!