Linuxカーネルは、メモリ書き込み違反が原因でプログラムの実行を終了しますが、同じメモリ位置でのメモリアクセス違反が原因ではありません.
例えば
//x is a pointer to a vector of structs
if( (*x)[i].member )
break; //doesn't crash
if( (*x)[i].member )
(*x)[i].member = 1; //crashes, even though member is not used
//elsewhere in the program