以下示例代码对我来说没问题但是如果使用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 = ¶ms->d;
double c = params->d;
c += *b;
SIGBUS是在最后一行引发的,即取消引用指针并访问内容导致问题。
谢谢, 查尔斯
答案 0 :(得分:0)
这对我来说听起来像对齐问题。 IIRC,double
必须与64位对齐。