Code Fix

中級sizeofが配列の要素数ではなくポインタのサイズを返す › パターン1

sizeofが配列の要素数ではなくポインタのサイズを返す

配列に対するsizeofは配列全体のバイト数を返しますが、関数の引数として渡された配列はポインタに変わっているため、同じsizeofが8(ポインタのサイズ)を返してしまいます。

 1  #include <stdio.h>
 2  
 3  int main(void) {
 4      int nums[5] = {1, 2, 3, 4, 5};
 5      int *p = nums;
 6      int count = sizeof(_____) / sizeof(int);
                             ^
 7      printf("%d\n", count);
 8      return 0;
 9  }
出力: 2期待: 5

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

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

sizeofが配列の要素数ではなくポインタのサイズを返す

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

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