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

请教在一个函数中动态申请内存,怎么在main函数中释放

2012-02-06 
请问在一个函数中动态申请内存,如何在main函数中释放首先我在main外建立了这样一个函数typedefshortsample

请问在一个函数中动态申请内存,如何在main函数中释放
首先我在main外建立了这样一个函数
typedef   short   sample_t;
sample_t   *   duplicate(sample_t   *   src,unsigned   int   count)
{
        sample_t   *p;
if(count> 0)
{
p=(sample_t   *)malloc(count);//类型转换(sample_t   *)
}
memcpy(p,src,200);//源指针跟目的指针倒转,count为字节数非个数;
return   p;
}

然后要在main中把他申请的空间释放,如果直接

int   main()
{

sample_t   samples[100];
sample_t   *p;
for(int   i=0;i <100;i++)
{
samples[i]=i+1;
}
p=duplicate(samples,100);
                  free(p);直接这样释放运行是报错
return   0;//返回一个数值
}
请问我应该如何改正呢?

[解决办法]
p=(sample_t *)malloc(count);//类型转换(sample_t *)
应该
p=(sample_t *)malloc(count * sizeof(sample_t));

热点排行