VirtualAlloc
Reserves or commits a region of pages in the virtual address space of the calling process. Memory allocated by this function is automatically initialized to zero, unless MEM_RESET is specified.
To allocate memory in the address space of another process, use the VirtualAllocEx function.
HeapAlloc
Allocates a block of memory from a heap. The allocated memory is not movable.
GlobalAlloc
Allocates the specified number of bytes from the heap.
Note The global functions are slower than other memory management functions and do not provide as many features. Therefore, new applications should use the heap functions. However, the global functions are still used with DDE, the clipboard functions, and OLE data objects.
sinon je pense que brunews expliquerais mieux que moi la difference entre VirtualAlloc et GetMem.
je sais que lui qui travail beaucoup avec SSE et pas seulement, utilise VirtualAlloc pour une question "d'allignement des données". j'ai jamais vraiment saisis la nuance.
je pense ensuite qu'il y a une difference de "cible" dans ces fonctions.
GetMem alloue de la memoire mais on a peu de control sur cette allocation. mis a part l'accés en I/O sur la donnée pointée ... on peu pas faire grand chose de plus.
VirtualAlloc ressemble fort a GetMem, mais fournit plus de control, apparement il semble qu'on puisse allouer des zone en I/O, I ou O, mais la encore, les subtilitées m'echape.