在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);
需要注意的是,使用完動態創建的結構體后,必須手動釋放分配的內存,否則會導致內存泄漏。