哈夫曼编码动态分配空间的语句不能执行

本人是一名学生,在写哈夫曼编码的作业时,代码没有语法问题,但在运行时(ctrl+f5)动态分配空间语句不能执行

但在调试时就可以执行并输出哈夫曼编码

请问这是什么原因

ps:********1等语句是我判断语句是否执行的提示。

啥问题 没明白

#include<stdlib.h>
#include<stdio.h>
#include<string.h>
typedef struct
{
	int weight;
	int parent;
	int lchild;
	int rchild;
}HTNode,*HuffmanTree;
typedef char **HuffmanCode;
HuffmanTree HT;HuffmanCode HC;
void Select(HuffmanTree HT,int m,int *s1,int *s2)
{
	int i;
	int min1=1000,min2=1000;
	for(i=1;i<=m;i++)
	{
		if(HT[i].parent==0&&min1>HT[i].weight)
		{
			min1=HT[i].weight;*s1=i;
		}
	}
	for(i=1;i<=m;i++)
	{
		if(i!=(*s1)&&HT[i].parent==0)
			if(HT[i].weight<min2)
			{
				min2=HT[i].weight;
				*s2=i;
			}
	}
}
void CreateHuffmanTree(HuffmanTree *HT,int n)
{
	if(n<=1) return;
	int i;int s1,s2;
	*(HT)=(HTNode*)malloc(2*n*sizeof(HTNode));
	for(i=0;i<=2*n;i++)
	{
		(*HT)[i].lchild=0;(*HT)[i].parent=0;(*HT)[i].rchild=0; 
	}
	printf("请输入结点的权重:"); 
	for(i=1;i<=n;i++)
		scanf("%d",&(*HT)[i].weight);
	for(i=n+1;i<2*n;i++)
	{
		Select(*HT,i-1,&s1,&s2);
		(*HT)[i].weight=(*HT)[s1].weight+(*HT)[s2].weight;
		(*HT)[s1].parent=i;(*HT)[s2].parent=i;
		(*HT)[i].lchild=s1;(*HT)[i].rchild=s2;
	}
}
void CreateHuffmanCode(HuffmanTree HT,HuffmanCode &HC,int n)
{
    int i,c,f;
    int start;
	char *cd = new char[n];
    HC=new char*[n+1];
    cd[n-1]='\0';
    for(i=1;i<n+1;i++)
    {
        start=n-1;
        c=i;f=HT[i].parent;
        while(f!=0)
        {
            --start;
            if(HT[f].lchild==c)
                cd[start]='0';
            else
                cd[start]='1';
            c=f;f=HT[f].parent;
        }
        HC[i]=new char[n-start];
        strcpy(HC[i],&cd[start]);
    }
    delete cd;
}
void main()
{
	int n,i;
	printf("******哈夫曼编码的创建******\n请输入你想要输入的结点个数:");
	scanf("%d",&n);
	CreateHuffmanTree(&HT,n);
	CreateHuffmanCode(HT,HC,n);
	printf("\n\n");
	printf("权值\t编码\n");
	for(i=1;i<n+1;i++)
		printf("%d\t%s\n",HT[i].weight,HC[i]);
	system("pause");
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

也许对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html
 

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y