>  기사  >  백엔드 개발  >  C와 C에서 가변 배열을 시뮬레이션하는 방법은 무엇입니까?

C와 C에서 가변 배열을 시뮬레이션하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-06 04:54:02482검색

How to Simulate Jagged Arrays in C and C  ?

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

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