Ich benutze Visual Studio 2010
mit Code Analysis
aktiviert. In meinem Code gibt es eine Zeile, die Speicher in einer Funktion zuweist:
Die Codeanalyse gibt eine Warnmeldung aus:
warning C6262: Funktion verwendet '40000' Bytes des Stacks: übertrifft / analyze: stacksize'16384 '. Ziehen Sie in Erwägung, einige Daten in den Heapspeicher zu verschieben
Ich frage mich, ob ich die Warnung ernst nehmen sollte. Muss ich einige echte Probleme haben, wenn ich etwas Speicher auf dem Stapel zuweisen & gt; 16384? Oder ist es nur eine allgemeine Warnmeldung, die mich daran erinnert, dass ich generell auf meine Stackgröße achten muss? Soweit ich weiß, ist die Standard-Stack-Größe 1 MB (wenn Sie Visual Studio verwenden).
Zugegebenermaßen kann diese Nachricht verwirrend sein, da VS (Projekteigenschaften) meldet, dass der Standardwert 1M ist. Wenn Sie sich jedoch den Text der Warnung ansehen, Sie werden feststellen, dass das Limit tatsächlich 16.000 für die Codeanalyse beträgt. Befolgen Sie die Schritte unten im Link, um die Warnung zu korrigieren.
Ich habe festgestellt, dass solche Warnungen ernst genommen werden müssen. Ich hatte eine Erklärung
%Vor%
ist versehentlich irgendwo tief in eine große Funktion geraten. Die Funktion stürzte immer sofort nach dem Eintritt in die Funktion ab, auch wenn die Deklaration im lokalen Zweig weit entfernt war, und ich kam nie mit dem Debugger dorthin. Es war schwierig, in MS Visual Studio zu finden, selbst wenn die Codeanalyse mich warnte.
Tags und Links c++ visual-studio-2010 stack visual-c++