名前空間
変種
操作

size_t

提供: cppreference.com
< c‎ | types
ヘッダ <stddef.h> で定義
ヘッダ <stdio.h> で定義
ヘッダ <stdlib.h> で定義
ヘッダ <string.h> で定義
ヘッダ <time.h> で定義
ヘッダ <uchar.h> で定義
(C11以上)
ヘッダ <wchar.h> で定義
(C95以上)
typedef /*implementation-defined*/ size_t;

size_tsizeofalignof (C11以上) および offsetof の結果の符号なし整数型で、データモデルに依存します。

[編集] ノート

size_t はあらゆる型 (配列を含む) の理論上可能なオブジェクトの最大サイズを格納できます。

size_t は一般的に配列のインデックスやループカウンタのために使用されます。 配列のインデックスに unsigned int などの他の型を使用するプログラムは、例えば64ビットのシステムにおいて、インデックスが UINT_MAX を超えるとき、または32ビットの剰余算術をあてにしている場合、失敗するかもしれません。

[編集]

#include <stdio.h>
#include <stddef.h>
#include <stdint.h>
 
int main(void)
{
    const size_t N = 100;
    int numbers[N];
    for (size_t ndx = 0; ndx < N; ++ndx)
        numbers[ndx] = ndx;
    printf("SIZE_MAX = %zu\n", SIZE_MAX);
    size_t size = sizeof numbers;
    printf("size = %zu\n", size);
}

出力例:

SIZE_MAX = 18446744073709551615
size = 400

[編集] 関連項目

2つのポインタを減算した結果の符号付き整数型
(typedef) [edit]
struct型の先頭から特定メンバまでのバイトオフセット
(関数マクロ) [edit]