Interesante tu pregunta. La respuesta corta es que solo puedes destruir memoria que haya sido previamente creada por un puntero. Ya que en el caso de P4, este apunta a una variable "numero" la cual fue declarada estaticamente (sin el uso de Crear), por lo que a nivel de memoria tienen un comportamiento distinto, y hacer un "destruir" a ese puntero que apunta a una variable estatica provocara un comportamiento indefinido. Para una informacion un poco mas tecnica y detallada te dejo este enlace: stackoverflow.com/questions/2688377/why-exactly-should-i-not-call-free-on-variables-not-allocated-by-malloc Nota: recordemos que Crear es el equivalente a Malloc (En C, New en C++) y Destruir es el equivalente a Free (en C, delete en C++)
Profe, y si hago Destruir(P4)?
Interesante tu pregunta. La respuesta corta es que solo puedes destruir memoria que haya sido previamente creada por un puntero. Ya que en el caso de P4, este apunta a una variable "numero" la cual fue declarada estaticamente (sin el uso de Crear), por lo que a nivel de memoria tienen un comportamiento distinto, y hacer un "destruir" a ese puntero que apunta a una variable estatica provocara un comportamiento indefinido. Para una informacion un poco mas tecnica y detallada te dejo este enlace:
stackoverflow.com/questions/2688377/why-exactly-should-i-not-call-free-on-variables-not-allocated-by-malloc
Nota: recordemos que Crear es el equivalente a Malloc (En C, New en C++) y Destruir es el equivalente a Free (en C, delete en C++)