我这个问题很简单,不需要看代码,我只想知道为什么我的那行开辟空间的代码(myHaffTree=(HaffNode *)malloc(sizeof(HaffNode)*(2*x-1));)要放到while语句上面才有用,放到while语句里面就没用。请问这是为什么?主函数代码如下:
void main()
{
int x,i,m=-1;
char a[Max];
int weight[Max];
HaffNode *myHaffTree;
myHaffTree=(HaffNode *)malloc(sizeof(HaffNode)*(2*x-1));
while(1)
{
printf("请输入所需选项:");
scanf("%d",&x);
switch(x)
{
case 1: printf("请输入字符:");
scanf("%s",a);
x=strlen(a);
printf("请输入字符所对应的权值:");
for(i=0;im)
{
m=myHaffTree.weight;
x=i;
}
PrintBiTree(myHaffTree,x,0);
}
}
|