C/C のギザギザ配列 : 謎が明らかに
その名前に反して、ギザギザ配列は不規則配列とも呼ばれます。部分配列の長さが異なる配列の配列です。この概念は JavaScript や Python などの言語で広く普及していますが、C/C はこのタイプのデータ構造を直接サポートしていません。
C/C にはネイティブのギザギザ配列の欠如
C または C で次のコードをコンパイル中にエラーが発生した場合:
<code class="cpp">int jagged[][] = { {0,1}, {1,2,3} };</code>
「多次元配列としての `jagged' の宣言は、最初の次元を除くすべての次元に境界が必要です」というメッセージは、次のことを示唆しています。 C/C 多次元配列では、最初の次元を除くすべての次元の長さを指定する必要があります。つまり、ジャグ配列はネイティブ C/C 言語仕様の一部ではありません。
C でのジャグ配列のエミュレーション
C でジャグ配列の機能を実現するには、別のアプローチに戻らなければなりません。そのような方法の 1 つは、ポインターの配列を利用することです。
<code class="cpp">int *jagged[5]; jagged[0] = malloc(sizeof(int) * 10); jagged[1] = malloc(sizeof(int) * 3);</code>
この例では、jagged は 5 つのポインターの配列です。各ポインタは、整数を格納するために割り当てられたメモリ ブロックを指します。ポインタの配列を使用すると、さまざまなサイズのサブ配列を作成し、そのメモリ割り当てと管理の制御を維持できます。
以上がC/C でギザギザ配列を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。