typedef struct {
int weight;
char ch;
int parent, lchild, rchild;
}HTNode, *HuffmanTree;
typedef char **HuffmanCode;
typedef struct {
HuffmanTree HT;
char *c;
int length;
HuffmanCode HC;
}Huffman;
上面这部分是我的结构体定义;
#include "head.h"
int main() {
Huffman Hfm;
char ch;
scanf("%c", &ch);
getchar();
while (ch != 'Q') {
if (ch == 'I') Hfm=InitHTree(Hfm);
else if (ch == 'E') EnHTree(Hfm);
else if (ch == 'D') DeHTree(Hfm);
else if (ch == 'P') PrintHTree(Hfm);
printf("\n------------------\n");
printf(" 初始化 I\n");
printf(" 编码 E\n");
printf(" 解码 D\n");
printf(" 打印代码文件 P\n");
printf(" 退出 Q\n");
printf("请选择服务:");
scanf("%c", &ch);
getchar();
}
return 0;
}
这是我的主函数部分,在visual stdio里报错说我在主函数里引用了未初始化的变量Hfm,但是我这样初始化:Hfm=(Huffman)malloc(sizeof(&huffman)) 仍然是报错,请问应该如何初始化呢?