<malloc関数>
形式: #include <stdlib.h>
void
*malloc(size_t size);
機能: 大きさsizeのメモリ領域を確保する。
引数: size: 確保したいメモリのバイトサイズ。
返却値: 成功した時:確保したメモリブロックを示すポインタ
失敗した時:NULL
確保された領域の初期化はされないので、不定値が入ったままになります。
<void *>
返却値の型はvoid *となっており、これはどんな型のポインタでも指定できる汎用のポインタを意味します。malloc関数から受け取る時は、
double
*dp;
dp
= (double *)malloc(size * sizeof(double));
のように、適切な型のポインタに明示的に型変換(キャスト)して使います。
<NULLポインタ>
必要なメモリが不足している等の理由で、malloc関数が指定されたサイズのメモリ確保に失敗した時はNULLポインタを返します。従って、
if
((dp = (double *)malloc(size * sizeof(int))) == NULL) {
/*
エラー処理*/
}
などとすることで、メモリ確保に失敗した場合の対処が可能です。