Lo que sucede cuando se tiene el siguiente código:C++ puntero del alcance
void makeItHappen()
{
char* text = "Hello, world";
}
¿El text
salir del alcance y se eliminan automáticamente o permanece en la memoria?
Y qué pasa con el siguiente ejemplo:
class SomeClass
{
public:
SomeClass();
~SomeClass();
};
SomeClass::SomeClass() { }
SomeClass::~SomeClass()
{
std::cout << "Destroyed?" << std::endl;
}
int main()
{
SomeClass* someClass = new SomeClass();
return 0;
} // What happend to someClass?
hace lo mismo ocurre aquí?
Gracias!
@Kos: ¿Esto significa que el número 2 en 'int x = 2;' también existe a través de la ejecución del programa completo? –
La diferencia es que el número 2 no necesita tener una dirección en la memoria, y la cadena sí (como apunta el puntero). * (Este número 2 existe en algún lugar de la sección de códigos de su memoria, que no necesita acceder directamente, porque es, bueno, el código, no los datos). * – Kos
@Kos Gracias por una gran respuesta ! Pero, ¿de qué sirve mantener '" Hello, world "' en la memoria? – Kevin