>> C言語関数一覧トップに戻る
今回はC言語のmalloc関数ついて説明します。
malloc関数は指定したバイト分のメモリを確保する関数です。
■書式
#include <stdlib.h>
void *malloc(size_t size);
引数には確保するバイトを指定します。
戻り値は確保したメモリのポインタがvoid型で返ってきます。
失敗した場合はNULLが返ります。
戻り値のポインタはvoid型で返ってくるので、
その後利用するデータ型にキャスト(変換)してやる必要があります。
キャストは関数の前に、
(型)
と書きます。
char型のポインタにキャストするなら、
(char*)
int型のポインタにキャストするなら、
(int*)
という風になります。
■サンプルコード
■実行結果
文字列を入力してください。
ABCDEFG
入力した文字は→ABCDEFG
上記のコードではmallocでメモリを100バイト確保して、戻り値のポインタをchar型のポインタにキャストして、
ポインタ変数chで受け取っています。
その後、標準入力から文字列を受け取ってch変数に格納して表示しています。
ちゃんと表示できているので、問題なくメモリが確保できていることがわかります。
確保したメモリは最後に必ず解放する必要があります。
free関数で確保したポインタを指定し、解放しています。
>> 【C言語 free 使い方】に進む
>> C言語関数一覧トップに戻る
C言語 malloc 使い方
malloc関数は指定したバイト分のメモリを確保する関数です。
■書式
#include <stdlib.h>
void *malloc(size_t size);
引数には確保するバイトを指定します。
戻り値は確保したメモリのポインタがvoid型で返ってきます。
失敗した場合はNULLが返ります。
戻り値のポインタはvoid型で返ってくるので、
その後利用するデータ型にキャスト(変換)してやる必要があります。
キャストは関数の前に、
(型)
と書きます。
char型のポインタにキャストするなら、
(char*)
int型のポインタにキャストするなら、
(int*)
という風になります。
■サンプルコード
01 | #include <stdio.h> |
02 | #include <stdlib.h> |
03 |
04 | int main( void ) |
05 | { |
06 | char *ch; |
07 |
08 | //確保したメモリをchar型ポインタにキャスト |
09 | ch = ( char *) malloc (100); |
10 |
11 | puts ( "文字列を入力してください。" ); |
12 |
13 | gets (ch); |
14 |
15 | printf ( "入力した文字は→%s\n" ,ch); |
16 |
17 | free (ch); |
18 |
19 | |
20 | return 0; |
21 | } |
文字列を入力してください。
ABCDEFG
入力した文字は→ABCDEFG
上記のコードではmallocでメモリを100バイト確保して、戻り値のポインタをchar型のポインタにキャストして、
ポインタ変数chで受け取っています。
その後、標準入力から文字列を受け取ってch変数に格納して表示しています。
ちゃんと表示できているので、問題なくメモリが確保できていることがわかります。
確保したメモリは最後に必ず解放する必要があります。
free関数で確保したポインタを指定し、解放しています。
>> 【C言語 free 使い方】に進む
>> C言語関数一覧トップに戻る