Code Fix

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

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

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

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

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

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

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

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

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