C および C でギザギザ配列をシミュレートするにはどうすればよいですか?

DDD
リリース: 2024-11-06 04:54:02
オリジナル
482 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!