LPVOID HeapReAlloc(HANDLE HandleTas, DWORD Mode, LPVOID Adresse, SIZE_T Taille);
Le mode Mode est généralement HEAP_NO_SERIALIZE en mono-thread et 0 sinon.
Le résultat est la zone allouée. Le contenu de la zone mémoire Adresse est recopié dans la zone allouée.
#include <windows.h>
#include <winbase.h>
HANDLE HandleTas;
char *Chaine;
Chaine=(char *)HeapAlloc(HandleTas, 0, 100*sizeof(char));
if (!Chaine)
{
...
}
...
Chaine=(char *)HeapReAlloc(HandleTas, 0, Chaine, 200*sizeof(char));
if (!Chaine)
{
...
}
...
HeapFree(HandleTas, 0, Chaine);
...
Surtout ne pas étendre la zone mémoire sur un autre tas que celui d'allocation.
Surtout ne pas écrire ou lire au-delà de la zone mémoire parce que celle-ci serait trop courte.
Surtout ne pas supposer que la zone mémoire est initialisée à une suite d'octets nul.