[Win32] Equivalent alloca

Résolu
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 - 26 juil. 2007 à 14:44
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 - 26 juil. 2007 à 21:33
Neo_Fr

7 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 juil. 2007 à 15:18
Encore des scories de l'interprété à enlever de tes idées...


void func()
{
  int tab[12];
  // code de travail a suivre
}
ici aucune alloc donc rien à désallouer.
tab[12] est juste un recul de ESP:
sub esp, 4*12
pour réserver 12 int sur la stack, compilo ajoute toujours la remontée de ESP en sortie de fonction.


Une alloc est une demande de mémoire par un appel d'une fonction du système hote (HeapAlloc, VirtualAlloc ou leurs wrappers). En ce cas il faut toujours l'appel de désalloc correspondant.

ciao...
BruNews, MVP VC++
3
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
26 juil. 2007 à 14:44
Bonjours,
Je cherche l'équivalent d'alloca en win32:

The alloca subroutine allocates the number of bytes of space specified by the Size parameter in the stack frame of the caller. This space is automatically freed when the subroutine that called the alloca subroutine returns to its caller.

Merci.


Neo_Fr
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 juil. 2007 à 15:05
N'existe pas un truc qui se désalloue automatiquement, le code est inséré par la lib (HeapAlloc, HeapFree, fonctions qu'appelle malloc en interne).

ciao...
BruNews, MVP VC++
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
26 juil. 2007 à 15:09
Au pire un tableau fixe sa peut suffire?
Quant la fonction qui creer le tableau se termine la memoire est liberé nn?

Neo_Fr
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
26 juil. 2007 à 21:19
Comment realouer de la memoire precedement alloué avec VirtualAlloc?

Si on passe a la fonction de realoc un pointeur null est-ce que celle ci aloue de la memoire quand meme (comme realloc)?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 juil. 2007 à 21:30
Les fonction Heap[xxx] ont le réalloc.
VirtualAlloc pas de cela, on joue avec le COMMIT et le RESERVE par pages. Richter explique tout cela en détails avec exemples.

ciao...
BruNews, MVP VC++
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
26 juil. 2007 à 21:33
Ok, je vais avoir de la lecture alors =)
0
Rejoignez-nous