Я пишу программу копирования файлов, в которой я столкнулся с трудностями, связанными с realloc(). Пожалуйста, посмотрите на следующий фрагмент (который я пишу, чтобы понять работу realloc()): -
int main(){
char *p =(char *) malloc ( 10 ),*t;
p = "this is";
if (strlen (p)==7)
{
t = realloc ( p,14);
if ( t==NULL)
{
printf ("no no\n");
}
}
printf("%p\n%p\n%d",p,t,strlen(p));
free (p);
free (t);
return 1;
}
вывод
no no //because realloc () is unable to reallocate the memory
00450357 //address of p
00000000 //address of t
почему realloc() не может перераспределить память и присвоить ее (ее адрес) t
?
EDIT я использую блоки кода в Windows.