ホームページ  >  記事  >  バックエンド開発  >  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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。