ошибка сегментации с отрицательным индексом - PullRequest
1 голос
/ 03 августа 2011

Этот фрагмент кода дает segfault в строке с ->, пожалуйста, обратите внимание, 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 Ответ

1 голос
/ 03 августа 2011

Это связано со значением дополнения до двух индекса, добавляемого к адресу, оно работает нормально в 32-битной, но не 64

Подробно здесь: http://www.devx.com/tips/Tip/41349

...