>  기사  >  백엔드 개발  >  C/C에서 가변 배열을 어떻게 구현할 수 있나요?

C/C에서 가변 배열을 어떻게 구현할 수 있나요?

Barbara Streisand
Barbara Streisand원래의
2024-11-05 15:33:02824검색

How Can We Implement Jagged Arrays in C/C  ?

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

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