读书人

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

发布时间: 2012-03-02 14:40:28 作者: rapoo

求助一个结构体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);
}

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

读书人网 >C语言

热点推荐