Utilisation appropriée de realloc()

De l'homme realloc:Le realloc() renvoie un pointeur vers la mémoire nouvellement allouée, qui est correctement alignés pour tout type de variable et peut être différente de ptr, ou NULL si la demande échoue.

Donc dans cet extrait de code:

ptr = (int *) malloc(sizeof(int));
ptr1 = (int *) realloc(ptr, count * sizeof(int));
if(ptr1 == NULL){           //reallocated pointer ptr1
    printf("Exiting!!\n");
    free(ptr);
    exit(0);
}else{
    free(ptr);          //to deallocate the previous memory block pointed by ptr so as not to leave orphaned blocks of memory when ptr=ptr1 executes and ptr moves on to another block
    ptr = ptr1;         //deallocation using free has been done assuming that ptr and ptr1 do not point to the same address                     
}

Est-il suffisant de simplement supposer que le réaffectées pointeur pointe vers un autre bloc de mémoire et de ne pas le même bloc.Parce que si l'hypothèse devient faux et realloc renvoie l'adresse de l'origine du bloc de mémoire pointé par ptr et puis free(ptr) exécute(pour la raison donnée dans les commentaires), alors que le bloc de mémoire seraient effacés et le programme aller de noix.
Dois-je le mettre dans une autre condition qui permettra de comparer l'égalité de ptr et ptr1 et de l'exclure de l'exécution de la free(ptr) déclaration?

PS - je n'ai pas assez de points de rep pour poser une autre question similaire sur TELLEMENT j'ai eu à former une nouvelle question..

OriginalL'auteur user3163420 | 2014-01-08