
No.2ベストアンサー
- 回答日時:
もしプラットフォームがwindowsでVCをお使いであればMSDNを参照してみるのもいい方法だと思います。
確認したところsize_tはunsigned int型のようですね。
STDDEF.Hに以下の記述を見つけました。
#ifndef _SIZE_T_DEFINED
typedef unsigned int size_t;
#define _SIZE_T_DEFINED
#endif
意味が存在しない「型」「数字」に意味をもたせると言う事はプログラムをする上で避けて通れないところだと思います。
(unsigned intと書いてあるよりはsize_tと書いてあるほうが「見た目に解りやすい」ですしね。もちろん一番の目的はOSの違いを吸収するためでしょう)
また、
void * calloc(size_t nmemb, size_t size);
は
* calloc();
こうすると理解しやすくありませんか?
ポインタ(*)が返される関数。但し、ポインタが指し示す先は未定義(void)。
尚更解りにくくしてしまったらすみません。
No.1
- 回答日時:
size_tは、メモリ量のサイズを表すための型です。
stdio.hとかstdlib.hで定義されています。
sizeof演算子がこの型の量を返します。
ついでながら、この手のものを調べるために、
下記の本のどちらかは絶対に買っておきましょう。
メモリの量を表現するのに、intで十分な場合もあれば
longが必要な場合もある(可能性がある)ので、
その違いを吸収するために存在しています。
あと、voidとvoid *型は違います。
前者は値を返さない印ですが、
void *は、ポインタを返します。「特に何の型へのポインタでもないポインタ」です。
たとえばint *を返すと、int *以外のポインタで使うときに
変換しなければならないから面倒。
void *は、char *型やint *型などのポインタに自由に代入できます。
参考URL:http://www.amazon.co.jp/exec/obidos/ASIN/4774104 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語でのconstを返す関数
-
どうしてエラーになるかわかり...
-
LPSTR型の初期化について
-
CObArrayとCPtrArrayの違い
-
C言語のポインタに直接アドレス...
-
配列アドレスの減算
-
ハンドルはポインタか
-
C言語 配列の長さの上限
-
関数から配列を返すには?
-
CStringからchar*への型変換に...
-
C# DataGridView のヘッダーセ...
-
DWORDとcharの変換
-
入力された文字列の中の数字を...
-
異なる構造体のデータのコピー
-
【C言語】配列の中に配列を入れ...
-
C言語の配列:「*(w+a)=・・・...
-
%dなどの違い
-
構造体のデータを丸ごとコピー...
-
datagridviewの並べ替え
-
sinのマクローリン展開
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインタに直接アドレス...
-
init関数の意味
-
セグメントエラー
-
Run-Time Check Failure #3とい...
-
ExcelVBAでのkernel32(64bit)
-
戻り値で構造体を返すことは可...
-
fopne で失敗する原因
-
参照型で受け取った引数をポイ...
-
トリプルポインタが必須!とな...
-
ハンドルはポインタか
-
LPSTR型の初期化について
-
ポインターの使用法や利点
-
ポインタについて
-
c言語で任意のファイルから読み...
-
基本アルゴリズムの『返す』の...
-
コンストラクタでnewを失敗した...
-
ハンドル、アドレス、ポインタ...
-
アプリを32bitから64bit移行
-
デバイスハンドルとは?
-
NULLとブランクの違い
おすすめ情報