GCC 4.0.2解引用指向结构的双重类型成员会引发SIGBUS错误

时间:2011-07-21 17:47:36

标签: c gcc struct java-native-interface sigbus

以下示例代码对我来说没问题但是如果使用GCC 4.0.2进行编译,则总是无法在Solaris上执行SIGBUS错误,但是如果使用GCC 3.4.2版本编译它运行正常。有什么想法?

        //params is a pointer to a structure Param, which has a member d whose type is double. It was initiated/allocated through JNI.

        params->d = 5.0;
        double *b = &params->d;
        double c = params->d;
        c += *b;

SIGBUS是在最后一行引发的,即取消引用指针并访问内容导致问题。

谢谢, 查尔斯

1 个答案:

答案 0 :(得分:0)

这对我来说听起来像对齐问题。 IIRC,double必须与64位对齐。