Zum Hauptinhalt wechseln
Support-Wissensdatenbank

Wie sollte Objektspeicher in einer Intel® Software Guard Extensions (Intel® SGX) Enklave befreit werden?

Inhaltstyp: Produktinformationen und Dokumente   |   Artikel-ID: 000059846   |   Letzte Überprüfung: 10.08.2021

Beschreibung

  • Enklave umfasst C++ Objekte wie Klassen unique_ptrs.
  • Es kann nicht bestimmt werden, wie der Speicher für C++ Objekte in der Enklave befreit wird.

Lösung

Verwenden Sie in Enklaven den C++ Löschoperator, um Speicher frei zu lassen, der zuvor Klassen, unique_ptrs und anderen Objekten mit dem neuen Operator zugewiesen war. Die neuen Operatoren und Löschungen verhalten sich innerhalb von Enklaven genauso wie in regulären C++ Anwendungen.

Beispielcode:

test.h:

class{

private:

  ClassA* ca;

  unique_ptr cb;

}

test.cpp:

//Use new to instantiate the class and unique_ptr objects

ca = new ClassA*(...); 

cb = make_unique(function(...));

//Use delete to free the memory previously allocated with new

delete ClassA;

delete cb;

 

Weitere Informationen

Weitere Informationen dazu finden Sie im C++ Sprachsupport-Abschnitt im Intel® Software Guard Extensions (Intel® SGX) SDK Developer Reference Guide für Ihr Betriebssystem.

Disclaimer / Rechtliche Hinweise

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.