巴士错误协助

时间:2012-10-10 21:03:21

标签: c

我有一个使用ncurses显示安装程序文本的可视程序,它似乎在gcc 2.9.5上工作正常(不要问)但是在新的gcc上它崩溃了。

char   *
dofDisplay(dlistptr *ptr)
{
        static char p[100];

        sprintf(p, " %-36s ", (*ptr)->datainfo.option);
        return p;
}

GDB报告以下内容:

0x0000000000402811 in dofDisplay (ptr=Variable "ptr" is not available.
) at file.c:676
676             sprintf(p, " %-36s ", (*ptr)->datainfo.option);

dlistptr是在另一个文件中定义的结构。

1 个答案:

答案 0 :(得分:0)

由不同编译器(或同一编译器的不同版本)编译的库可能使用不同的调用约定,因此不具有二进制兼容性。您可以考虑使用新编译器重新构建整个项目,如果您还没有看到是否修复它。