マトリックスを表す2D配列のデータを比較しようとしています。 それは疎な行列なので、私は2次元配列compactMatrixを作成しました。これは、値行列入り口がnullでない行と列を持ちます。配列比較で予期しない動作が発生する
私は比較を行うために、このコードを使用しています:i
とk
が、私は現在、for
ループ内で探していたインデックスです
if(compactMatrix[0][i] == compactMatrix[1][k] &&
compactMatrix[1][i] == compactMatrix[0][k]){
Do stuff...
}
。 あなたが知っているように、私はデバッグし、compactMatrix[0][i]
とcompactMatrix[1][k]
とcompactMatrix[1][i]
とcompactMatrix[0][k]
の値は本当に等しいです。
が
j = compactMatrix[0][i];
l = compactMatrix[1][i];
printf("%i %i", &j, &l);
を使用して値を印刷しようとしましたが、それは私のポインタアドレスを与え、私は推測します。
ですから、なぜif節にfalse
が返ってきたのか、正しく修正する方法を知りたいのですが。
に引数をキャストすることを忘れないでくださいP指定子を使用して行うのであれば、この 'printfの( "%Iの%のI"、&J、&l);は' UBの原因となる。 – babon
ドン」あなたのコードを記述しますが、[mcve] –
を表示するには 'printf("%i%i "、j、l);' –