Il est toujours important d'appeler _freea après chaque appel à _malloca.
_malloca est comme _alloca, mais ajoute des contrôles de sécurité supplémentaires et des améliorations pour votre protection. Par conséquent, _malloca peut être alloué sur le tas au lieu de la pile. Si cela se produit, et vous n'appelez pas _freea, vous obtiendrez une fuite de mémoire.
En mode de débogage, _malloca ALWAYS alloue sur le tas, donc devrait également être libéré.
Recherchez _ALLOCA_S_THRESHOLD pour plus de détails sur le fonctionnement des seuils, et pourquoi _malloca existe à la place de _alloca, et cela devrait être logique.
Edit:
Il y a eu des commentaires suggérant que la personne vient d'allouer sur le tas, et utiliser des pointeurs intelligents, etc.
Il y a des avantages à empiler des allocations, qui vous fournira _malloca , donc il y a des raisons de vouloir faire cela. _alloca fonctionnera de la même manière, mais il est beaucoup plus susceptible de provoquer un débordement de pile ou un autre problème, et malheureusement ne fournit pas de belles exceptions, mais a plutôt tendance à détruire votre processus. _malloca est beaucoup plus sûr à cet égard, et vous protège, mais le coût est que vous avez encore besoin de libérer votre mémoire avec _freea car il est possible (mais peu probable en mode de libération) que _malloca choisira d'allouer sur le tas au lieu de la pile. Si votre seul but est d'éviter d'avoir à libérer de la mémoire, je vous recommande d'utiliser un pointeur intelligent qui va gérer la libération de la mémoire pour vous lorsque le membre sort du champ d'application. Cela affecterait la mémoire sur le tas, mais soyez sûr, et vous empêchez d'avoir à libérer la mémoire. Cela ne fonctionnera qu'en C++, cependant - si vous utilisez un langage simple, cette approche ne fonctionnera pas. Si vous essayez d'allouer sur la pile pour d'autres raisons (typiquement les performances, puisque les allocations de pile sont très, très rapides), je vous recommande d'utiliser _malloca et de vivre avec le fait que vous devrez appeler _freea sur votre valeurs.
Juste curieux, mais pourquoi les downvotes sur Mitch et mes messages? J'aimerais savoir pourquoi quelqu'un est en désaccord avec ce commentaire ... surtout s'il me manque quelque chose. –