内存泄漏.
#include "top.h"void main()
{
int n=0,i,j,m,w[50];
char *string,*str,*t,temp[50];
huffmantree HT;
huffmancode p;
HT=NULL;
string=NULL;
str=NULL;
t=(char*)malloc(sizeof(char));
gets(t);
//string=(char*)malloc(sizeof(char));
/*while(*t)
{
*string=*t;
t++;
string++;
//k++;
}*/
/*for(i=0;t[i]!='\0';i++)
{
string[i]=t[i];
}
string[i]='\0';*/
//string=t;
for(i=0,j=1;t[i]!='\0';i++,j=1)
{
if(t[i]!=' ')
{
for(m=i+1;t[m]!='\0';m++)
{
if(t[i]==t[m]&&t[m]!=' ')
{
j++;
t[m]=' ';
}
}
//w1=(int*)malloc(2*sizeof(int));
//temp1=(char*)malloc(2*sizeof(char));
n++;//记录不同字符的个数
w[n-1]=j;//记录字符的权值
temp[n-1]=t[i];//记录不同的字符
}
}
//n=Getdata(HT,string,n);
HT=Inithuffmantree(HT,w,temp,n);
Creathuffmantree(HT,n);
p=HT[2*n-2];
str=(char*)malloc(m*sizeof(char));
i=0;
Codedata(p,str,i);
Decode(p);
while(*t)
{
Decodedata(p,t);
t++;
}
}
调试的时候DOS窗口能显示..运行的时候就会错误..貌似是内存泄漏..但是我没看出来..请帮忙.