最終更新:2025-04-10 (木) 00:15:56 (12d)
sizeof
Top / sizeof
データ型の大きさを求める単項の演算子
使い方
sizeof(型名) | 指定した型が利用するメモリサイズ |
sizeof(変数名) | その変数名で確保されているメモリサイズ |
sizeof(値) | 値の型のメモリサイズを返す。 |
メモ
- sizeofは原則としてコンパイル時計算される
- C99で可変長配列に対してsizeofを適用する場合、配列の大きさは実行時に動的に計算され、コンパイル時定数にはならない。
- ポインター変数を指定した場合、ポインターの指している先に確保されているメモリサイズを返すのではなく、ポインターのサイズ(32bitCPUならたぶん4)が返る
C言語/配列
- sizeofが配列型に使用されると、その配列がメモリ上に占める大きさが演算結果となる
- sizeof x / sizeof x[0]の演算により、配列の要素数を求めることが可能
double data[50]; double sum = 0; for(int i = 0; i < sizeof(data) / sizeof(data[0]); ++i){ sum += data[i]; }
- この方法はサイズの決まった配列変数(型 変数[])でないと使えない。ポインター変数(型 *変数)には使えない。