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