遇到一个问题,莫名其妙的出现coredump。期望返回的是指针值,但是返回值有截断的效果。

(gdb) p hash_table
$1 = (sf_ht_t ) 0xffffffffe0d66e00 -------->截断值,高32位为F,低32位正确。
(gdb) p ht_table
$2 = (struct sf_ht
) 0x7f82e0d66e00 --------->正确值

aaa.c:1130:38: warning: initialization of ‘sf_ht_t ’ {aka ‘struct sf_ht ’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
由于没有及时处理代码中的告警。将返回值的指针值系统优化为int。导致程序coredump。

问题原因是:
函数调用时,找不到函数定义。没有引用头文件导致的。
总结:正确对待,程序编译过程中的每一个warning。