给结构体分配内存可以通过以下两种方法:
使用malloc函数动态分配内存,例如:
struct Person * p = (struct Person*) malloc(sizeof(struct Person));
直接声明一个结构体变量,例如:
struct Person p;
第二种方法会在栈上自动分配内存,不需要手动释放。而第一种方法需要手动释放内存。
在什么时候释放内存取决于你的代码逻辑。如果是局部变量,在使用完后立即进行释放;如果是全局变量或静态变量,在程序结束前进行释放。如果是动态分配的堆空间,则需要在使用完后手动调用free函数进行释放。
例如:
// 动态分配内存
struct Person * p = (struct Person *) malloc(sizeof(struct Person));
// 使用结构体
// 释放内存
free§;