malloc
alloc.h:インデックス への移動
ヘッダーファイル
alloc.h, stdlib.h
カテゴリ
メモリルーチン
プロトタイプ
void *malloc(size_t size);
説明
malloc は,メモリヒープから size バイトのブロックを割り当てます。これを使用して,必要なときに正確に必要な量のメモリを明示的に割り当てることができます。
メインメモリを割り当てます。ヒープは,可変サイズのメモリブロックの動的割り当てに使用されます。ツリーやリストなどの多くのデータ構造は,自動的にヒープメモリ割り当てを使用します。
ラージデータモデルでは,プログラムスタックを超えて最後までのすべての利用可能なメモリ領域をヒープとして使用できます。
戻り値
成功した場合,malloc は,新しく割り当てられたメモリブロックへのポインタを返します。新しいブロックのための十分な容量がない場合は,NULL を返します。ブロックの内容は変更されずに残ります。引数のサイズが 0 の場合,malloc は NULL を返します。
例
#include <stdio.h>
#include <string.h>
#include <alloc.h>
#include <process.h>
int main(void)
{
char *str;
/* 文字列にメモリを割り当てる */
if ((str = (char *) malloc(10)) == NULL)
{
printf("Not enough memory to allocate buffer\n");
exit(1); /* メモリ不足の場合はプログラムを終了する */
}
/* 文字列に「Hello」をコピーする */
strcpy(str, "Hello");
/* 文字列を表示する */
printf("String is %s\n", str);
/* メモリを解放する */
free(str);
return 0;
}
移植性
POSIX | Win32 | ANSI C | ANSI C++ |
---|---|---|---|
+ |
+ |
+ |
+ |