bonjour,
Quelle est la difference entre globalalloc et malloc...??
J'en ai besoin pour allouer de la mémoire et y stocker en binaire le contenu d'un fichier héxadécimal (environ 500 octets)
Dans quel cas faut -il mieux utiliser l'un ou l'autre..?
Version imprimable
bonjour,
Quelle est la difference entre globalalloc et malloc...??
J'en ai besoin pour allouer de la mémoire et y stocker en binaire le contenu d'un fichier héxadécimal (environ 500 octets)
Dans quel cas faut -il mieux utiliser l'un ou l'autre..?
C'est quoi globalalloc ?Citation:
Envoyé par cout
Si c'est du C, jamais entendu parler...
C'est une question specifique au systeme d'exploitation Windows -> forum Developpement Windows.
malloc() est une fonction C standard.
GlobalAlloc() est spécifique Win32, mais ne présente en fait aucune différence avec malloc()!!!
Dans ce cas, je te conseille d'utiliser le standard du langage...
ok merci et est il possible de blocker l'espace memoire avec malloc() en utilisant une fonction similaire a globallock() et globalunlock()
Non, le fonctionnement interne de malloc() dépend de l'implémentation.
Si tu veux interdire à ta zone d'être déplacée en utilisant GlobalLock(), il faut bien que tu utilises GlobalAlloc();)
ok je te remercie bien
Sauf que GlobalAlloc() est deprecated.
Et GlobalLock() ne "bloque" pas le bloc en mémoire pour empêcher qu'il soit swappé: seule VirtualLock() peut faire ça, il me semble.
Bref: Si tu veux maintenir une zone mémoire en RAM, il te faut utiliser VirtualAlloc(). Sinon, le bon vieux malloc() de la C Run-time Library suffit largement...
Si je ne me trompe pas, on ne peut pas utiliser le malloc avec le presse-papier par exemple (sous Windows) , il faut passer par le GlobalAlloc.
GlobalAlloc n'est pas deprecated il me semble, simplement comme elle est lente, MicroSoft conseille d'utiliser d'autre fonctions.
Hum, c'est vrai, j'avais oublié cela: Il faut utiliser GlobalAlloc() pour tout ce qui exige un HGLOBAL (notamment le presse-papier et le DDE)