😸
[C] realloc 関数
機能
動的に確保したメモリ領域のサイズを変更する標準関数[1]
使用例
reallocでメモリ領域を拡張する
と表示する
\n
は改行を表す エスケープシーケンス[2]
コード
int *p = malloc(2 * sizeof(int));
p = realloc(p, 4 * sizeof(int));
printf("reallocでメモリ領域を拡張する\n");
全文
#include <stdio.h>
#include <stdlib.h>
void main() {
int *p = malloc(2 * sizeof(int));
p = realloc(p, 4 * sizeof(int));
printf("reallocでメモリ領域を拡張する\n");
free(p);
}
実行結果
reallocでメモリ領域を拡張する
reallocでサイズ0にすればfree相当
を変数から表示する
コード
char msg[] = "reallocでサイズ0にすればfree相当\n";
int *p = malloc(10 * sizeof(int));
p = realloc(p, 0);
printf("%s", msg);
全文
#include <stdio.h>
#include <stdlib.h>
void main() {
char msg[] = "reallocでサイズ0にすればfree相当\n";
int *p = malloc(10 * sizeof(int));
p = realloc(p, 0); // サイズ0でfreeと同じ
printf("%s", msg);
// pへのアクセス禁止
}
実行結果
reallocでサイズ0にすればfree相当
Discussion