C言語 - 柔軟な配列
フレキシブル配列 (フレキシブル配列) は C 言語の機能で、配列の最後のメンバーのサイズを 0 または不明にすることができ、配列の定義時に特定の長さを指定せず、実行時に必要なメモリ領域を動的に割り当てます。 。
柔軟な配列を使用すると、可変長データを構造体に格納するなど、可変長データ構造を効率的に処理できます。
フレキシブル配列を使用した例を次に示します。
#include <stdio.h>
#include <stdlib.h>
struct MyStruct {
int size;
int data[];
};
int main() {
int n = 5;
struct MyStruct* myStruct = malloc(sizeof(struct MyStruct) + n * sizeof(int));
myStruct->size = n;
for (int i = 0; i < n; i++) {
myStruct->data[i] = i;
}
printf("Size: %d\n", myStruct->size);
for (int i = 0; i < myStruct->size; i++) {
printf("Data[%d]: %d\n", i, myStruct->data[i]);
}
free(myStruct);
return 0;
}
上記の例では、可変長データを表す柔軟な配列 data[] が MyStruct 構造体で定義されています。実行時に、必要に応じて必要なメモリ領域を割り当て、malloc 関数を使用して動的メモリ割り当てを行います。
柔軟な配列を使用すると、ニーズに応じてさまざまな長さのデータを簡単に保存でき、メモリを割り当てるときに配列の長さを動的に指定するだけで済むため、データ構造がより柔軟で効率的になります。使用後は、メモリ リークを防ぐために、free 関数を使用して動的に割り当てられたメモリ領域を解放する必要があることに注意してください。