您的位置:首页 > 其它

结构体数组的指针初始化与内存释放

2015-07-13 20:49 288 查看
结构体如下:

Typedef structstudent

{

Int num;

Char* name;

} Tom,*Lily;

如果定义成Tom的形式,不需要为结构体分配内存,但是需要对name分配内存

Tom.name =(char*)malloc(sizeof(char)*n);

使用完毕要释放内存:

free(Tom.name);

如果定义成*Lily的指针形式,则首先要对结构体分配内存

Lily = (student*)malloc(sizeof(student));

然后再如上所示给name分配内存

用完后先释放name的内存,再释放结构体的内存

free(Lily.name);

free(Lily);

若要建立一个有n元素结构体数组Student *class

class =(student*)malloc(sizeof(student)*n)

初始化name

for(i = 0; i<n;i++)

{

Class[i].name = (char*)malloc(sizeof(char)*m);

}

释放内存

for(i = 0; i<n;i++)

{

free(Class[i].name)

}

free(class);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: