Cで構造体を動的に作成する方法
C言語では、動的メモリ確保関数malloc()を用いて、構造体を動的に作成できます。
まず、次のような構造体型を定義する必要があります。
typedef struct {
int id;
char name[20];
int age;
} Person;
また、malloc() 関数を使用して、構造体オブジェクトを動的に割り当てることもできます。コードは次のとおりです。
Person *person = (Person *)malloc(sizeof(Person));
上記のコードでは、sizeof(Person) は構造体 Person のサイズを表し、malloc() 関数は対応するサイズのメモリを確保し、そのメモリへのポインタを返します。malloc() 関数は void * 型のポインタを返すため、構造体型のポインタに変換する必要があることに注意してください。
構造体のメンバー変数へのポインタによるアクセスと代入は、以下のように行えます。
person->id = 1;
strcpy(person->name, "John");
person->age = 20;
最後に、動的に作成した構造体の利用が終わったら、free() 関数を使用して割り当てられたメモリの解放を行う必要があります。これによりメモリリークを防ぐことができます。以下はその例です。
free(person);
動的に作成した構造体を利用後、確保したメモリは手動で解放する必要があります。解放しないとメモリリークが発生します。