Título: Pequeña duda con punteros Publicado por: JonaLamper en 28 Febrero 2015, 11:32 am Buenas. Quiero ver si he entendido este pequeño problema, así que voy a decir lo que está mal o lo que está bien y vosotros me dais el visto bueno ;D
Tenemos el siguiente código erróneo: Código
Está mal porque el puntero *p no puede almacenar el valor 44 (32+12), sino que debe almacenar una dirección de memoria. Dos soluciones:
Código
Es correcto porque a *p le asignamos la dirección de memoria de a, y al hacer *ptr = temp la variable a pasará a valer 44.
Código
Correcta porque al puntero *p se le indica que apunte a una dirección de memoria (asignada por malloc) que podrá guardar un valor de tipo int, en este caso almacenará el valor 44. ¿Está todo bien entendido? :rolleyes: Título: Re: Pequeña duda con punteros Publicado por: xiruko en 28 Febrero 2015, 13:09 pm Tenemos el siguiente código erróneo: Código
Está mal porque el puntero *p no puede almacenar el valor 44 (32+12), sino que debe almacenar una dirección de memoria. No es exactamente eso. Está mal porque p no apunta a ninguna dirección de memoria, nunca ha sido inicializado por lo que no hay un espacio de memoria donde guardar ese valor entero. Dos soluciones:
Código
Es correcto porque a *p le asignamos la dirección de memoria de a, y al hacer *ptr = temp la variable a pasará a valer 44. Este código es casi igual que antes, con la única diferencia que ahora p sí que está inicializado, apunta a la dirección de memoria de la variable a, por lo que ahora guardar un valor en *p sí que se puede.
Código
Correcta porque al puntero *p se le indica que apunte a una dirección de memoria (asignada por malloc) que podrá guardar un valor de tipo int, en este caso almacenará el valor 44. Este caso también es casi igual al primero, solo que ahora p también está inicializado, aunque esta vez en lugar de apuntar a la dirección de una variable existente (como a a antes), se reserva memoria explícitamente para él con malloc(). Saludos. |