Es ist immer wichtig, _freea nach jedem Aufruf von _malloca aufzurufen.
_malloca ist wie _alloca, fügt jedoch zusätzliche Sicherheitsüberprüfungen und Verbesserungen zu Ihrem Schutz hinzu. Daher ist es möglich, dass _malloca auf dem Heap anstelle des Stacks zugewiesen wird. Wenn dies geschieht und Sie _freea nicht aufrufen, erhalten Sie ein Speicherleck.
Im Debug-Modus reserviert _malloca IMMER auf dem Heap, also sollte auch freigegeben werden.
Suchen Sie nach _ALLOCA_S_THRESHOLD für Details, wie die Schwellenwerte funktionieren und warum _malloca anstelle von _alloca vorhanden ist, und es sollte Sinn ergeben.
Edit:
Es gab Kommentare gewesen was darauf hindeutet, dass die Person auf dem Heap zuweisen gerade und intelligente Zeiger verwenden usw.
Es gibt Vorteile Zuführungen zu stapeln, die _malloca Sie bieten Es gibt also Gründe, dies zu tun. _alloca wird auf die gleiche Weise funktionieren, aber es ist viel wahrscheinlicher, dass es zu einem Stack-Überlauf oder anderen Problemen kommt, und bietet leider keine schönen Ausnahmen, sondern neigt eher dazu, den Prozess einfach abzubrechen. _malloca ist in dieser Hinsicht viel sicherer und schützt Sie, aber die Kosten sind, dass Sie noch Ihren Speicher mit _freea freigeben müssen, da es möglich ist (aber im Freigabemodus unwahrscheinlich), dass _malloca beschließen wird, auf dem Heap anstelle des Stapels zuzuweisen.
Wenn Ihr Ziel nur ist, Speicher zu vermeiden, würde ich empfehlen, einen intelligenten Zeiger zu verwenden, der die Speicherfreigabe für Sie übernimmt, wenn das Element den Gültigkeitsbereich verlässt. Dies würde Speicher auf dem Heap zuweisen, aber sicher sein und verhindern, dass Sie den Speicher freigeben müssen. Dies funktioniert jedoch nur in C++. Wenn Sie nur ein altes C verwenden, wird dieser Ansatz nicht funktionieren.
Wenn Sie versuchen, auf dem Stapel aus anderen Gründen zuzuteilen (normalerweise Leistung, da Stapelzuweisungen sehr, sehr schnell sind), würde ich _malloca empfehlen und mit der Tatsache leben, dass Sie _freea auf Ihrem aufrufen müssen Werte.
Nur neugierig, aber warum die Downvotes auf Mitch und meine Posts? Ich würde gerne wissen, warum jemand mit diesem Kommentar nicht einverstanden ist ... vor allem, wenn ich etwas verpasse. –