首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

动态开辟结构体后内存释放有关问题

2013-07-25 
动态开辟结构体后内存释放问题#include malloc.h#include stdlib.h#include stdio.htypedef struct

动态开辟结构体后内存释放问题

#include <malloc.h>
#include <stdlib.h>
#include <stdio.h>
typedef struct shusu
{
int count;
int * value;
int sum;
} *Pshusu;
int main()
{
int i,j,k,l;
Pshusu s;
scanf("%d",&i);//结构体个数
s=(Pshusu)malloc(sizeof(struct shusu)*i);
for(j=0;j<i;j++)
{
scanf("%d",&s[j].count);//结构体中元素个数
l=s[j].count;
s[j].value=(int *)malloc(sizeof(int)*l);//动态开辟结构体数组空间
for(k=0;k<l;k++)
{
scanf("%d",&s[j].value[k]);//输入数组元素
}
}
for(j=0;j<i;j++)
{
for(k=0;k<s[j].count;k++)
printf("%d ",s[j].value[k]);
printf("\n");
}

return 0;
}
请问大侠我这里释放空间该怎么释放呢?是直接free(s)还是先把结构体内动态开辟的内存释放了再free(s)呢? 内存释放
[解决办法]
先free 里面的 int数组,然后在free外层结构体,记得顺序与malloc是相反的

热点排行