racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 14 nov. 2006 à 12:13
Salut,
GlobalAlloc est une API Windows.
malloc est une fonction du C standard.
Bien sûr, toute zone de mémoire allouée doit être libérée en fin d'utilisation.
GPTR combine deux flags : GMEM_FIXED et GMEM_ZEROINIT. Ca veut dire que la zone mémoire allouée est fixe (non déplaçable). La fonction retournera un pointeur sur la zone allouée. Le 2ème flag permet de mettre à 0 tous les octets de cette zone.
Le 2ème paramètre de GlobalAlloc() permet de préciser la taille de la zone à allouer. MAX_PATH vaut 260 je pense.
yepla75
Messages postés34Date d'inscriptionjeudi 19 octobre 2006StatutMembreDernière intervention13 juin 2007 14 nov. 2006 à 13:55
Merci,
Pour la valeur de MAX_PATH, j'ai brièvement regardé sur le net ; certains disent 256 caractères, d'autres 260.
J'ai mal posé ma question concernant la différence entre GlobalAlloc et malloc : si on fait un programme en C/API WIN32, pour quels types d'applications préfèrera-t-on l'un à l'autre, ou sont-ils "équivalents" ?
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 14 nov. 2006 à 14:10
La valeur de MAX_PATH dépend des compilateurs. Elle correspond au nombre maximum de caractère dans un chemin pour fichiers.
Si tu veux travailler sur Windows, il est préférable d'utiliser GlobalAlloc(). Si tu veux que ton code soit portable pour Linux etc, utilise malloc().