带负指数的分段错误

时间:2011-08-03 09:57:00

标签: gcc 64-bit segmentation-fault

此代码片段在 - >行上给出段错误,请注意n = 3

real_t _b[n+1];
real_t * b = _b+1;
std::fill( b, b + n , (real_t)0.0 );
for ( unsigned c = 0; c < n; c ++ )
  {
->   b[c-1] = 0; b[c] = 1;
     Lsolve( xtmp, lu, b, n ); 

我被告知这是因为我在64位(Linux amd64,gcc 4.6,调试标志-O0)

谁能告诉我更多?

1 个答案:

答案 0 :(得分:1)

这与添加到地址的索引的二进制补码值有关,它在32位但不是64位工作正常

详细信息:http://www.devx.com/tips/Tip/41349