C/C에서 가변 배열 이해
행의 길이가 다양할 수 있는 가변 배열 개념은 C/C에서 직접 지원되지 않습니다. 표준 C/C에는 유사한 기능을 달성하는 기술이 있습니다.
아래 표시된 것처럼 C/C에서 가변 배열을 선언하려고 하면
<code class="c++">int jagged[][] = { {0,1}, {1,2,3} };</code>
컴파일러에서 오류가 발생하고 첫 번째 차원을 제외한 모든 차원에 대한 경계를 지정해야 합니다. 이러한 제한을 극복하기 위한 대체 접근 방식은 포인터 배열을 활용하는 것입니다.
포인터 배열을 사용하여 가변 배열 만들기
C에서는 다음을 사용하여 가변 배열을 구현할 수 있습니다. 포인터 배열. 이 배열의 각 요소는 동적으로 할당된 하위 배열을 가리키며, 각 하위 배열에는 고유한 다양한 길이가 있습니다.
예:
<code class="c">int *jagged[5]; // Assign memory to each subarray jagged[0] = malloc(sizeof(int) * 10); jagged[1] = malloc(sizeof(int) * 3); // Accessing elements *jagged[0] = 0; *(jagged[0] + 1) = 1; *jagged[1] = 1; *(jagged[1] + 1) = 2; *(jagged[1] + 2) = 3; // Free memory after use free(jagged[0]); free(jagged[1]);</code>
이 방법을 사용하면 다양한 크기로 들쭉날쭉한 배열의 동작을 시뮬레이션합니다. 메모리 누수를 방지하려면 각 하위 배열의 메모리를 동적으로 할당하고 수동으로 해제해야 한다는 점에 유의하는 것이 중요합니다.
위 내용은 C/C에서 가변 배열을 어떻게 구현할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!