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

一个结构体free()有关问题

2012-03-02 
求助一个结构体free()问题。程序如下:#includestdio.h#includestdlib.htypedefstruct{charrighter[10]

求助一个结构体free()问题。
程序如下:
#include   <stdio.h>
#include   <stdlib.h>

typedef   struct   {
charrighter[10];
}Inf;

Inf*   Create_Inf(Inf   *inf,   int   num){
        if(num <=0){/*只有一个节点*/
inf=(Inf   *)malloc(sizeof(Inf));
}
else{/*有多个节点*/
                inf=(Inf   *)realloc(inf,sizeof(Inf));
}
return   inf;
}

void   main()
{
                Inf   *inf;
inf=Create_Inf(inf,0);
inf=Create_Inf(inf,1);

inf[0].righter[0]= '0 ';

inf[1].righter[0]= '2 ';这一行去掉就不报错了
free(inf);
}


报的错为:
Debug   Error!
Programe:   F:\go.exe
DAMAGE:after   Normal   block(#45)   at   0x00431EA0


谢谢高手了!



[解决办法]
else{/*有多个节点*/
inf=(Inf *)realloc(inf,sizeof(Inf) * num);
}

[解决办法]
多个节点分配内存不够多

热点排行