Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Löschen Sie
owner<T>keinen ungültigen Zustand (r.3)
Hinweise
Sobald ein Besitzerzeiger seine Ressource loslässt oder überträgt, wird er in einen "ungültigen" Zustand versetzt. Das Löschen eines solchen Zeigers kann zu einer sofortigen Speicherbeschädigung aufgrund eines doppelten Löschens oder zu einer Zugriffsverletzung führen, wenn von einem anderen Besitzerzeiger auf die gelöschte Ressource zugegriffen wird.
Name der Codeanalyse: DONT_DELETE_INVALID
Beispiel 1
Löschen eines Besitzers nach dem Übertragen seines Werts:
gsl::owner<State*> validState = nullptr;
gsl::owner<State*> state = ReadState();
validState = state;
if (!IsValid(state))
delete state; // C26404
Beispiel 2
Löschen eines nicht initialisierten Besitzers:
gsl::owner<Message*> message;
if (popLast)
message = ReleaseMessage();
delete message; // C26404