C语言问题

[复制链接]
查看11 | 回复1 | 2009-6-16 16:03:00 | 显示全部楼层 |阅读模式
我这个问题很简单,不需要看代码,我只想知道为什么我的那行开辟空间的代码(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);

}

}

回复

使用道具 举报

千问 | 2009-6-16 16:03:00 | 显示全部楼层
无限开辟空间?...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行