[Win32] Equivalent alloca

[Résolu]
Signaler
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
-
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
-
Neo_Fr

7 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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++
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
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
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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++
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
Au pire un tableau fixe sa peut suffire?
Quant la fonction qui creer le tableau se termine la memoire est liberé nn?

Neo_Fr
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
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)?
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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++
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
Ok, je vais avoir de la lecture alors =)