结构体数组的指针初始化与内存释放
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);
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);
相关文章推荐
- 《Java学习路径2》
- 0029 C指针
- [LeetCode] Majority Element
- Maximum Sum Subarray
- 构造方法-java学习
- 什么是dex文件
- java正则表达式
- Basic View
- 【计蒜客系列】挑战难题10:寻找插入位置
- Nexys3学习手记1:写在前面的话
- HDU 3123 GCC
- 设置WordPress主题表单样式
- 7.13学习记录
- Docker无法启动 Could not find a free IP address range for interface 'docker0' 最方便的
- WSDL手动生成WebService代理类的方法
- 巧用nc命令搭建http请求调试工具
- WSDL手动生成WebService代理类的方法
- Windows下查看进程与线程的相关工具
- 系统架构领域的一些学习材料
- jsp操作数据库,并将结果分页显示