動的配列と静的配列は、プログラムで一般的に使用される 2 つの異なるタイプの配列です。これらには、メモリ管理、サイズ、使用の柔軟性において明らかな違いがあります。
静的配列は、コンパイル時に定義され、メモリ領域が割り当てられる配列であり、そのサイズはコンパイル時に決定され、変更できません。静的配列のサイズは通常、宣言時に指定します (例: int arr[10])。静的配列を使用する場合、コンパイラは固定サイズのメモリ空間を割り当てます。その結果、静的配列のサイズは実行時に変更されません。これは、静的配列のサイズを動的に増減できないことを意味します。
これとは対照的に、動的配列は実行時に作成および破棄される配列であり、そのサイズは必要に応じて調整できます。動的配列のサイズはコンパイル時には決定されませんが、実行時に必要に応じてメモリ領域が割り当てられ、解放されます。動的配列のサイズは、malloc() や realloc() などの特定の関数を使用して動的に調整できます。動的配列を使用する場合、実際のニーズに応じて配列のサイズを動的に調整できます。
以下は、動的配列と静的配列の違いを示す具体的なコード例です。
静的配列の例:
#include <iostream> int main() { int arr[5]; // 静态数组声明 for(int i = 0; i < 5; i++) { arr[i] = i; // 为静态数组赋值 } for(int i = 0; i < 5; i++) { std::cout << arr[i] << " "; // 输出静态数组的元素 } return 0; }
サイズが 5 の静的配列は、ここで宣言された配列 arr に値を代入します。静的配列のサイズはコンパイル時に決定され、実行時に変更することはできません。
動的配列の例:
#include <iostream> #include <cstdlib> int main() { int size; std::cout << "请输入动态数组的大小:"; std::cin >> size; int* arr = (int*) malloc(size * sizeof(int)); // 动态数组的创建 for(int i = 0; i < size; i++) { arr[i] = i; // 为动态数组赋值 } for(int i = 0; i < size; i++) { std::cout << arr[i] << " "; // 输出动态数组的元素 } free(arr); // 动态数组的销毁 return 0; }
ここでは、動的配列のサイズがユーザー入力を通じて取得され、malloc() 関数を使用して int 型の動的配列 arr が動的に作成されます。サイズサイズ。動的配列のサイズは入力に基づいて調整できます。最後に、free() 関数を使用して、動的配列によって占有されているメモリ空間を解放します。
上記の例からわかるように、動的配列と静的配列の違いは、サイズの決定方法とメモリの管理方法にあります。静的配列のサイズはコンパイル時に決定され、変更できませんが、動的配列のサイズは実行時に必要に応じて調整できます。動的配列の作成と破棄には、メモリ管理のための特定の関数を使用する必要がありますが、静的配列のメモリ管理はコンパイラによって自動的に処理されます。したがって、実際のアプリケーションでは、特定のニーズに応じて静的配列を使用するか動的配列を使用するかを選択する必要があります。
以上が動的配列と固定配列の比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。