C6211
Aktualisiert: November 2007
C6211
Warnung C6211: Speicherverlust <Zeiger> infolge einer Ausnahme. Verwenden Sie einen lokalen Catch-Block, um den Arbeitsspeicher zu bereinigen.
Diese Warnung gibt an, dass der reservierte Arbeitsspeicher bei Auslösung einer Ausnahme nicht freigegeben wird. Die Anweisung am Ende des Pfads löst möglicherweise eine Ausnahme aus.
Beispiel
Der folgende Code generiert diese Warnung:
#include <new>
void f( )
{
char *p1 = new char[10];
char *p2 = new char[10];
// code ...
delete[] p1;
delete[] p2;
}
Um diese Warnung zu korrigieren, verwenden Sie den Ausnahmehandler, wie im folgenden Code dargestellt:
#include<new>
#include<iostream>
using namespace std;
void f( )
{
char *p1=NULL;
char *p2=NULL;
try
{
p1 = new char[10];
p2 = new char[10];
// code ...
delete [] p1;
delete [] p2;
}
catch (bad_alloc &ba)
{
cout << ba.what() << endl;
if (NULL != p1)
delete [] p1;
if (NULL !=p2)
delete [] p2;
}
// code ...
}