Code Fix

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

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

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

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

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

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

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

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

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