Code Fix

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

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

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

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

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

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

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

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

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