1
아래의 코드 샘플에서 realloc은 내 p1을 이동하거나 누수가있을 때 "1234567890"문자열에 할당 된 메모리를 해제합니다.내 데이터를 메모리에 복사 할 때 realloc이 얼마나 자유니까?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
char **p1 = NULL;
char *p2 = NULL;
int i;
p1 = (char **) malloc (100);
for (i = 0; i < 10; i ++)
{
p1[i] = (char *) malloc(10);
memcpy (p1[i], "1234567890", 10);
}
p2 = malloc (100);
p1 = (char **) realloc (p1, (1000 * sizeof(**p1)));
for (i = 0; i < 10; i ++)
{
fprintf (stdout, "p1: %s\n", p1[i]);
}
free(p1);
free(p2);
return 0;
}