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

菜鸟在线C编译器:1)

 1. http://www.compileonline.com/compile_c_online.php

结构体如下:

struct student{
	Int num;

	Char* name;

} Tom,*Lily;

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

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

使用完毕要释放内存:

free(Tom.name);

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

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

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

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

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

free(Lily.name);
free(Lily);

3.若要建立一个有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);

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值