No entiendo cómo este ejemplo, posiblemente, puede trabajar:devolviendo un puntero
double * GetSalary() {
double salary = 26.48;
return &salary;
}
main() {
cout << *GetSalary(); //prints 26.48
}
salary
es una variable local en GetSalary()
, por tanto, después de regresar de la función, esta célula podría posiblemente ser sobrescrito por otra función. No veo cómo puede funcionar alguna vez devolver un puntero a una variable local (no instanciado en el montón).
Sí, es posible que se sobrescriba. O tal vez no. Es por eso que esto se llama ** comportamiento indefinido **, en lugar de ** bloqueo garantizado **. –
es gracioso que el código obove sea el primer resultado cuando google "retornando el puntero a una función" – user695652
A menudo obtengo lo mismo. Tengo la idea de que Google cambia tu burbuja de búsqueda cuando inicias sesión en SO con una cuenta de Google. –