elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  No puedo asignar un char a un array de dos dimensiones
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No puedo asignar un char a un array de dos dimensiones  (Leído 2,992 veces)
SCUMM

Desconectado Desconectado

Mensajes: 17


Ver Perfil
No puedo asignar un char a un array de dos dimensiones
« 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?


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: No puedo asignar un char a un array de dos dimensiones
« Respuesta #1 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.


En línea

SCUMM

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: No puedo asignar un char a un array de dos dimensiones
« Respuesta #2 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?
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: No puedo asignar un char a un array de dos dimensiones
« Respuesta #3 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
En línea

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

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: No puedo asignar un char a un array de dos dimensiones
« Respuesta #4 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.
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: No puedo asignar un char a un array de dos dimensiones
« Respuesta #5 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.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines