Autor |
Mensaje |
mafalda
Nivel 4
Edad: 33
Registrado: 15 Dic 2011
Mensajes: 114
Carrera: Informática
|
|
Buenas, quería consultar sobre un error que no me permite compilar un codigo con struct y no encuentro la falla.
La declaracion:
typedef struct simbolo{
char dibujo[3];
}matriz;
y la parte donde me tira el error es cuando hago:
void creandoT(simbolo matriz[ancho][alto]){
//simbolo.matriz;
for(int i=0;i<ancho;i++){
for(int j=0;j<alto;j++){
matriz.dibujo[0]='|';
matriz.dibujo[1]='0';
matriz.dibujo[2]='|';
}
}
}
me salta un error:
|error: request for member `dibujo' in `matriz', which is of non-class type `simbolo (*)[5]'|
Gracias!
|
|
|
|
|
|
|
|
|
Sebastian Santisi
Administrador Técnico
Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451
|
|
matriz no es una estructura, es una matriz de ancho por alto estructuras.
Adivino que lo que querés hacer es:
matriz[i][j].dibujo[0] = '|';
etc.
|
|
|
|
_________________
|
|
|
|
|
mafalda
Nivel 4
Edad: 33
Registrado: 15 Dic 2011
Mensajes: 114
Carrera: Informática
|
|
Eso mismo. Ahora anda perfecto!
No le estaba pasando las dimensiones.
Muchas Gracias!
|
|
|
|
|
|
|
|
|
ale_vans
Nivel 7
Edad: 35
Registrado: 22 May 2008
Mensajes: 304
Ubicación: Vte. Lopez
Carrera: No especificada
|
|
Aprovecho que hace mucho que no toco codigo de C para preguntar... como hace el compilador para saber que "ancho" y "alto" son del tipo int en la declaracion?
|
|
|
|
|
|
|
|
|
Sebastian Santisi
Administrador Técnico
Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451
|
|
Ancho y alto no son variables, son literales; supongo que en algún lado están definidos con defines. (En ANSI-C99 podrías declarar un array local con un tamaño variable, pero no es el caso, no vale para signatures de funciones.)
El tipo de los literales que van en los corchetes de un array son size_t, si fueran de otro tipo, se castean/promueven/truncan (como todo en C, que es débilmente tipado).
@mafalda: La convención de C es que las etiquetas (y sólo las etiquetas) vayan en mayúsculas. En este caso debería ser ANCHO y ALTO.
|
|
|
|
_________________
|
|
|
|
|
|
|
Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro No podés responder a temas en este foro No podés editar tus mensajes en este foro No podés borrar tus mensajes en este foro No podés votar en encuestas en este foro No Podéspostear archivos en este foro No Podés bajar archivos de este foro
|
Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker365 Attacks blocked.
|
|
[ Tiempo: 0.3675s ][ Pedidos: 20 (0.3189s) ] |