No puedo asignar un char a un array de dos dimensiones

Iniciado por SCUMM, 12 Febrero 2014, 15:32 PM

0 Miembros y 1 Visitante están viendo este tema.

SCUMM

tengo el siguiente array de dos dimensiones:
Código (cpp) [Seleccionar]

typedef char Ejex [80];
typedef Ejex Ejey [25];

lo he inicializado como
Código (cpp) [Seleccionar]

Ejey pantalla[25][80];

el problema es que cuando quiero llenarlo de ceros con la siguiente asignación:
Código (cpp) [Seleccionar]

    for(y=0; y<24; y++)
    {
        for(x=0; x<79; x++)
        {
            pantalla[y][x]='0';
        }
    }

Al compilar salta el error "Incompatible types in assignment of 'char' to Ejey {aka char [25][80]}

Como puedo asignarle un valor a una posición concreta del array de chars?

eferion

Cita de: SCUMM en 12 Febrero 2014, 15:32 PM
tengo el siguiente array de dos dimensiones:
Código (cpp) [Seleccionar]

typedef char Ejex [80];
typedef Ejex Ejey [25];

lo he inicializado como
Código (cpp) [Seleccionar]

Ejey pantalla[25][80];


¿Y no sería más sencillo quitar esas líneas y dejarlo como sigue?

char pantalla[25][80];

Entre otras cosas, no tiene sentido que en el typedef definas un tamaño y a la hora de crear la variable asignes tamaños nuevos... realmente eres consciente de lo que estás haciendo ahí??

Nunca se me ha ocurrido hacer algo semejante... pero no me extrañaría nada que la línea:

Ejey pantalla[25][80];

Quedase una vez explotada como:

char pantalla[25][80][25][80];

o algo similar... la verdad es que mucho sentido no tiene.

SCUMM

poniendo simplemente
Código (cpp) [Seleccionar]

char pantalla[25][80]

¿creo un array de dos dimensiones compuesto por chars?

rir3760

Si. Es un array de 25 elementos donde cada uno es un array de 80 elementos de tipo char (si te resulta mas fácil puedes visualizarlo como una matriz).

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

SCUMM

Muchas gracias!!! La verdad es que es la solución mas cómoda(y la mas lógica) ;-), supongo que nuestro profesor nos lo ha enseñado de la otra manera para que nos vayamos familiarizando con los tipos de datos estructurados.

eferion

En programación acostúmbrate a hacer las cosas sencillas... sobretodo porque luego te puede tocar volver a pasar por ellas y entonces agradecerás tener un código legible.