Buenas, tengo una duda. ¿Se puede suponer que todas las imagenes a tratar ya han pasado por la funcion inicializarImagen?, porque pienso que lo correcto seria que cada vez que vamos a modificar el tamaño de una imagen, antes de reasignarle memoria habria que liberar la anterior, ya que la funcion inicializarImagen utiliza malloc y no realloc por razones obvias, y no encuentro forma de filatrar en la funcion destruirImagen imagenes que pasaron por malloc y las que no, para no hacer free a algo que no se puede
no se si se entendio mi regunta, la reformulo.
yo siemrpre que tengo que cambiar la cantidad de meoria asiganda a una variable de tipo imagen la paso por destruirImagen para quqe no quqede memoria asignada por malloc sin liberar, pero si me pasan una sin inicializar se rompe el programa, ya que le estoy haciendo free a algo quqe no deberia. ¿puedo suponer que estas variables siempre esatna inicializadas?, porque no encuentro forma de chequear si pasaron por la funion inicializarImagen o no.
Sigo sin entender la pregunta. Qué quiere decir ¨ya han pasado por la funcion inicializarImagen¨? pasadas por quien? por qué querrías modificar el tamano de una imagen?
Creo que estás hablando con una dualidad entre imagen archivo e imagen tipo de dato. No soy capaz de entender la cuestión.
Creo que estás hablando con una dualidad entre imagen archivo e imagen tipo de dato. No soy capaz de entender la cuestión.
Buenas Ignacio, te respondo con algunos puntos a tener en cuenta:
1. Nosotros en ningún caso les vamos a pedir que le cambien la memoria a una variable imagen que ya reservaron.
2. De la mano al punto anterior, siempre se van a inicializar nuevas imágenes, no se van a modificar las que ya existen (en cuanto a memoria).
3. La función destruir tiene que suponer que se paso previamente por una inicialización (sino no tendría mucho sentido eliminar una imagen).
4. La función destruir se utilizará únicamente cuando es necesario.
Saludos.
1. Nosotros en ningún caso les vamos a pedir que le cambien la memoria a una variable imagen que ya reservaron.
2. De la mano al punto anterior, siempre se van a inicializar nuevas imágenes, no se van a modificar las que ya existen (en cuanto a memoria).
3. La función destruir tiene que suponer que se paso previamente por una inicialización (sino no tendría mucho sentido eliminar una imagen).
4. La función destruir se utilizará únicamente cuando es necesario.
Saludos.