アットウィキロゴ

C言語関数

malloc,free


malloc
文法:
 #include <stdlib.h>
 void *malloc( size_t サイズ );

malloc()はサイズ の大きさを持つメモリブロックを確保してそのポインタを返す関数である。エラーが発生した場合にはNULLを返す。確保されるメモリはスタックではなく、ヒープ上のメモリになるため、使い終わったらfree()を呼び出して解放する必要がある。

free
文法:
 #include <stdlib.h>
 void free( void *ポインタ );

free()はポインタ が指すメモリを解放し、将来、他の場所で使用できるようにする関数である。ポインタ はmalloc(), calloc(), realloc()などを呼び出して確保したメモリブロックへのポインタを指定しなければならない:

サンプル:

   typedef struct data_type {
     int age;
     char name[20];
   } data;
   
   data *bob;
   bob = (data*) malloc( sizeof(data) );
   if( bob != NULL ) {
     bob->age = 22;
     strcpy( bob->name, "ロバート" );
     printf( "%s は %d 歳です\n", bob->name, bob->age );
   }
   free( bob );


最終更新:2009年04月22日 18:55