動的メモリサイズを拡張する・realloc †malloc関数を使用することにより指定したサイズ(バイト)のメモリを取得することができます。 スポンサーリンク 関連記事 †
realloc書式など †realloc関数の書式などを以下に記します。
reallocのCサンプルコード †以下にreallocを使ったCサンプルコードを記します。 realloc.c (改行コードLF) #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> int main(void) { char *p = NULL; p = malloc(5+1); if (p == NULL) { perror("malloc() error!"); exit(EXIT_FAILURE); } strcpy(p, "12345"); printf("p = %s\n", p); p = realloc(p,10+1); strcat(p, "67890"); printf("p = %s\n", p); return 0; } 上記Cサンプルコードをコンパイルし実行した結果です。 $ gcc realloc.c -o realloc $ ./realloc p = 12345 p = 1234567890 サンプルソースで+1している理由は、文字列の終端のNULLが格納されるエリア(1バイト)を追加しています。 スポンサーリンク |