Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SCUMM en 12 Febrero 2014, 15:32 pm



Título: No puedo asignar un char a un array de dos dimensiones
Publicado por: SCUMM en 12 Febrero 2014, 15:32 pm
tengo el siguiente array de dos dimensiones:
Código
  1. typedef char Ejex [80];
  2. typedef Ejex Ejey [25];
  3.  
lo he inicializado como
Código
  1. Ejey pantalla[25][80];
  2.  
el problema es que cuando quiero llenarlo de ceros con la siguiente asignación:
Código
  1.    for(y=0; y<24; y++)
  2.    {
  3.        for(x=0; x<79; x++)
  4.        {
  5.            pantalla[y][x]='0';
  6.        }
  7.    }
  8.  
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?


Título: Re: No puedo asignar un char a un array de dos dimensiones
Publicado por: eferion en 12 Febrero 2014, 15:57 pm
tengo el siguiente array de dos dimensiones:
Código
  1. typedef char Ejex [80];
  2. typedef Ejex Ejey [25];
  3.  
lo he inicializado como
Código
  1. Ejey pantalla[25][80];
  2.  

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

Código
  1. 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:

Código
  1. Ejey pantalla[25][80];

Quedase una vez explotada como:

Código
  1. char pantalla[25][80][25][80];

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


Título: Re: No puedo asignar un char a un array de dos dimensiones
Publicado por: SCUMM en 12 Febrero 2014, 16:01 pm
poniendo simplemente
Código
  1. char pantalla[25][80]
¿creo un array de dos dimensiones compuesto por chars?


Título: Re: No puedo asignar un char a un array de dos dimensiones
Publicado por: rir3760 en 12 Febrero 2014, 16:12 pm
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


Título: Re: No puedo asignar un char a un array de dos dimensiones
Publicado por: SCUMM en 12 Febrero 2014, 16:22 pm
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.


Título: Re: No puedo asignar un char a un array de dos dimensiones
Publicado por: eferion en 12 Febrero 2014, 16:24 pm
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.