Code Fix

中級配列と、先頭要素へのポインタでsizeofの結果が変わってしまう理由 › パターン3

配列と、先頭要素へのポインタでsizeofの結果が変わってしまう理由

配列そのもの(nums)と、先頭要素のアドレス(&nums[0])を混同してsizeofに渡してしまうバグです。

 1  #include <iostream>
 2  int main() {
 3      int data[3] = {1,2,3};
 4      std::cout << sizeof(________) << std::endl;
                                ^
 5      return 0;
 6  }
出力: 8期待: 12(int3個分)

空欄を埋めてコンパイル・実行を通す

広告
広告スロット(未設定)

配列と、先頭要素へのポインタでsizeofの結果が変わってしまう理由

見た目は似ていますが、前者は配列全体のバイト数、後者はポインタ1個分のサイズを返します。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)