Sé que esto no va a funcionar porque la variable x se destruye cuando se devuelve la función:retorno puntero a los datos declarados en la función
int* myFunction()
{
int x = 4; return &x;
}
Entonces, ¿cómo correctamente devuelven un puntero a algo que se crea dentro de la función y ¿de qué tengo que ocuparme? ¿Cómo evito las pérdidas de memoria? malloc
También he utilizado:
int* myFunction2()
{
int* x = (int*)malloc(sizeof int); *x = 4; return x;
}
¿Cómo hacer esto correctamente - en C y C++?
Tiene razón, la respuesta es 'myFunction2()' solo tiene que recordar liberar su memoria más tarde. Ese es el problema de no tener un recolector de basura – tzenes
Una vez más, mientras que C y C++ comparten muchas características, hay muchas preguntas con respuestas completamente diferentes según el idioma. Cómo evitar fugas de memoria es una de ellas, ya que es cómo crear algo dentro de una función ... ¿En qué idioma estás realmente interesado? –