tengo el siguiente array de dos dimensiones:
typedef char Ejex [80];
typedef Ejex Ejey [25];
lo he inicializado como
Ejey pantalla[25][80];
el problema es que cuando quiero llenarlo de ceros con la siguiente asignación:
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?
Cita de: SCUMM en 12 Febrero 2014, 15:32 PM
tengo el siguiente array de dos dimensiones:
typedef char Ejex [80];
typedef Ejex Ejey [25];
lo he inicializado como
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.
poniendo simplemente
char pantalla[25][80]
¿creo un array de dos dimensiones compuesto por chars?
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
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.
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.