C语言求助!!!写了一个返回结构体指针的函数,编译时总是提醒没有初始化q,但是初始化了。

下面是源码下载:
http://pan.baidu.com/s/1dDhplwH

程序是用C语言写的,VS2013编译。

这是其中使用结构体的定义
图片说明

这是哈夫曼函数的定义
图片说明

4个回答

  1. 创建的时候可以 …… ,*q = NULL;
  2. malloc 之后 memset(q, 0 , sizeof(……));
  1. 创建的时候可以 …… ,*q = NULL;
  2. malloc 之后 memset(q, 0 , sizeof(……));
luoguanxiong
luoguanxiong 我在调试的时候,可以看到q被初始化了,但是就是return不出来
4 年多之前 回复

编译通过了吗?我用VC2010编译,有3个错误,更正后通过了:
但是没有你的txt文件,没法运行,不知道运行会怎样。

 //Huffman.h
    b = (struct BTreeNode **)malloc(n*sizeof(struct BTreeNode*));
        b[i] = (struct BTreeNode *)malloc(sizeof(struct BTreeNode));
        q = (struct BTreeNode *)malloc(sizeof(struct BTreeNode));

luoguanxiong
luoguanxiong Huffman.h的txt我是Huffman.c
4 年多之前 回复

txt文件用Huffman.c
运行结果:
_

OK
35 a
31 b
21 c
29 d
58 e
40 f
7 g
18 h
49 i
16 j
19 k
36 l
8 m
54 n
26 o
3 p
7 q
38 r
16 s
70 t
27 u
1 v
0 w
0 x
0 y
3 z
节点权值为58的编码:000
节点权值为7的编码:001000
节点权值为7的编码:001001
节点权值为3的编码:0010100
节点权值为0的编码:00101010000
节点权值为0的编码:00101010001
节点权值为0的编码:0010101001
节点权值为1的编码:001010101
节点权值为3的编码:00101011
节点权值为8的编码:001011
节点权值为31的编码:0011
节点权值为16的编码:01000
节点权值为16的编码:01001
节点权值为35的编码:0101
节点权值为70的编码:011
节点权值为36的编码:1000
节点权值为18的编码:10010
节点权值为19的编码:10011
节点权值为38的编码:1010
节点权值为40的编码:1011
节点权值为21的编码:11000
节点权值为26的编码:11001
节点权值为49的编码:1101
节点权值为54的编码:1110
节点权值为27的编码:11110
节点权值为29的编码:11111
请按任意键继续. . ._

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐