📦 変数・型・演算子
long long total = 100000 * 100000; の結果が 1410065408 になります。定数式なら gcc: warning: integer overflow in expression of type 'int' results in '1410065408' [-Woverflow]。変数どうしだと警告すら出ません。
計算はまず int どうしで行われ、int の範囲(約±21億)を超えて壊れたあとに long long へ代入されます。代入先を大きくしても、計算そのものは救われません。
計算の前に片方を広げます: long long total = 100000LL * 100000; や (long long)x * y。符号付き整数のあふれは未定義動作なので、C23の ckd_mul / ckd_add(stdckdint.h)で検査するのが最も確実です。
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。