Ir al contenido principal
Base de conocimientos de asistencia

¿Cómo debería liberarse la memoria de objetos dentro de Intel® Software Guard Extensions (Intel® SGX) Enclave?

Tipo de contenido: Información y documentación sobre productos   |   ID del artículo: 000059846   |   Última revisión: 10/08/2021

Descripción

  • Enclave incluye objetos de C++ como clases y unique_ptrs.
  • No se puede determinar cómo liberar la memoria para objetos de C++ en el enclave.

Resolución

En enclaves, utilice el operador de eliminación de C++ para liberar la memoria que anteriormente se asignaba a clases, unique_ptrs y otros objetos mediante el nuevo operador. Los operadores new y delete se comportan igual en enclaves que en aplicaciones de C++ regulares.

Código de muestra:

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;

 

Más información

Para obtener más información, consulte la sección De asistencia de lenguaje de C++ Intel® Software Guard Extensions (Intel® SGX) de referencia para desarrolladores de SDK de su sistema operativo.

Productos relacionados

Este artículo se aplica a 1 productos.

Descargos de responsabilidad legales

El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.