arrays en c
Publicado por emilio (1 intervención) el 26/05/2005 17:30:46
hola amigos
este es mi primer mensaje en este foro, espero explicarme con claridad y que todos saquemos algo de provecho.
ando con un programa de manojo de imágenes. en un momento dado quiero crear dos arrauys 2D del mismo tamaño que la imagen que estoy tratando. el código, resumido, viene a ser el siguiente:
Gan_Image *pImage;
//carga una imagen jpg en pImage
pImage = gan_image_read ( "pez13r1.jpg", GAN_JPEG_FORMAT, NULL );
//para almacenar ancho y alto de pImage//
height = (int)pImage->height;
width = (int)pImage->width;
// creo dos arrays con las mismas dimensiones que pImage
int im_unos_ceros [height] [width];
int uno_cero_temp [height] [width];
bien, el problema es que si declaro estos dos últimos arrarys tal y como se ven, al ejecutar me da una violación de segmento. si hag lo mismo pero poniendo los valores numéricos de height y width, es decir, int im_unos_ceros [200][300]; el error no se produce. tampoco se produce el error si sólo declaro uno de los dos arrays. si declaro uno de los arrarys del modo escrito y otro con valores numéricos vuelve a aparecer la violación del segmento, cualquiera que se el orden en que lo haga.
si alguien tiene una pista sobre hacia dónde tirar le estaría muy agradecido
un saludo
emilio
este es mi primer mensaje en este foro, espero explicarme con claridad y que todos saquemos algo de provecho.
ando con un programa de manojo de imágenes. en un momento dado quiero crear dos arrauys 2D del mismo tamaño que la imagen que estoy tratando. el código, resumido, viene a ser el siguiente:
Gan_Image *pImage;
//carga una imagen jpg en pImage
pImage = gan_image_read ( "pez13r1.jpg", GAN_JPEG_FORMAT, NULL );
//para almacenar ancho y alto de pImage//
height = (int)pImage->height;
width = (int)pImage->width;
// creo dos arrays con las mismas dimensiones que pImage
int im_unos_ceros [height] [width];
int uno_cero_temp [height] [width];
bien, el problema es que si declaro estos dos últimos arrarys tal y como se ven, al ejecutar me da una violación de segmento. si hag lo mismo pero poniendo los valores numéricos de height y width, es decir, int im_unos_ceros [200][300]; el error no se produce. tampoco se produce el error si sólo declaro uno de los dos arrays. si declaro uno de los arrarys del modo escrito y otro con valores numéricos vuelve a aparecer la violación del segmento, cualquiera que se el orden en que lo haga.
si alguien tiene una pista sobre hacia dónde tirar le estaría muy agradecido
un saludo
emilio
Valora esta pregunta


0