写了一个返回结构体指针的函数,编译时老是提醒没有初始化q,但是初始化了

写了一个返回结构体指针的函数,编译时总是提醒没有初始化q,但是初始化了。
本帖最后由 luoguanxiong 于 2015-11-12 08:20:20 编辑
下面是源码下载:
http://pan.baidu.com/s/1dDhplwH

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

这是其中使用结构体的定义
写了一个返回结构体指针的函数,编译时老是提醒没有初始化q,但是初始化了

这是哈夫曼函数的定义
写了一个返回结构体指针的函数,编译时老是提醒没有初始化q,但是初始化了
------解决思路----------------------
你这是一个函数,当呼叫这个函数是 n=0,那么返回什么呢?

你运行时的 n 只是一个特里,编译器要保证所有的分支。

简单说,if(n) 语句,你可以在 else 里面有语法错误吗?

if(n)
{
p = 1;
}
else
{
p = 0; //这里也要赋值,赋值编译器会认为没有初始化。
}

其实,你只需要在定义的时候,初始化就可以了。这是最好的做法。