Foros-FIUBA Foros HostingPortal
 FAQ  •  Buscar  •  Wiki  •  Apuntes  •  Planet  •  Mapa  •  Eyeon  •  Chat
Preferencias  •  Grupos de Usuarios
Registrarse  •  Perfil  •  Entrá para ver tus mensajes privados  •  Login
Ver tema siguiente
Ver tema anterior

Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente
Autor Mensaje
ezequiel.grillo
Nivel 4



Registrado: 11 Abr 2011
Mensajes: 74

Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Jue Mar 22, 2012 12:20 pm  Asunto: Pregunta Consulta TP1 Calvo Responder citandoFin de la PáginaVolver arriba

Les comento mi problema,
Estoy tratando de compilar el primer tp de la cat calvo pero cuando quiero pasar una matriz en la firma de un procedimiento me tira error y ya probe de mil maneras pero me sigue tirando el mismo error.

Lista de errores
Cita:

In file included from main.cpp:3:
cabeceras.h:6: error: declaration of `calles' as array of references

main.cpp: In function `int main()':
main.cpp:14: error: variable or field `cargaCalles' declared void
main.cpp:14: error: initializer expression list treated as compound expression
main.cpp:14: warning: left-hand operand of comma has no effect
main.cpp:14: warning: unused variable 'cargaCalles'
Process terminated with status 1 (0 minutes, 2 seconds)
3 errors, 2 warnings



Les dejo el codigo donde estoy laburando:

cabeceras.cpp
Cita:
void cargaCalles (int& calles[][MAX_DIM], int dimension){

for (int i=1;i<=dimension;i++)
for (int j=1;j<=dimension;j++){

cout << "Ingrese calle o tierra 1/0:" << endl;
cout << "[" << i+1 << "," << j+1 << "]" <<endl>> calles[i][j];

}


cabeceras.h
Cita:
void cargaCalles(int& calles[][MAX_DIM], int dimension);



main.cpp

Cita:
int main(){
int dimension=0;
int calles[MAX_DIM][MAX_DIM];
dimension=pedirDatos(dimension);
void cargaCalles(calles,dimension);

getchar();
return 0;


Pegue mucho codigo porque nose bien donde esta el error y tampoco lo que me qiere decir con array of referencies Sad

Espero sus respuestas
Abrazoo.


   OfflineGalería Personal de ezequiel.grilloVer perfil de usuarioEnviar mensaje privadoMSN Messenger
koreano
Nivel 9



Registrado: 15 Jul 2010
Mensajes: 1796

Carrera: No especificada
blank.gif
MensajePublicado: Jue Mar 22, 2012 12:50 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Basicamente, int& es una referencia a integer, y int& asd[] es una referencia a un array, pero lo que vos estás haciendo es un array de referencias a array de integer que no es válido (por temas de memoria dinámica vs estática).

Lo que podés hacer para circunventar el problema sin usar ninguna estructura dinámica es pasar un puntero a la matriz esa y después usar la constante MAX_DIM en los ciclos anidados directamente.


   OcultoGalería Personal de koreanoVer perfil de usuarioEnviar mensaje privado
Amadeo
Nivel 9



Registrado: 20 Oct 2008
Mensajes: 1436

Carrera: No especificada
blank.gif
MensajePublicado: Jue Mar 22, 2012 12:51 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Primero, en el main, es cargaCalles(calles,dimension), no void cargaCalles(calles,dimension)

Después, el encabezado de la función cargaCalles, si vos le queres pasar la matriz como parámetro, deberías hacer algo asi:

void cargaCalles (int calles[][], int dimension)

ó

void cargaCalles (int** calles, int dimension)

Cuando vos declaras un arreglo o una matriz, la variable (en este caso calles) es un puntero (o un doble puntero en este caso) a la estructura en cuestión, y por lo tanto eso es lo que tiene que recibir la función.


 Género:Masculino  OcultoGalería Personal de AmadeoVer perfil de usuarioEnviar mensaje privado
ezequiel.grillo
Nivel 4



Registrado: 11 Abr 2011
Mensajes: 74

Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Jue Mar 22, 2012 1:10 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Pero al pasar la matriz sin &, me la devuelve cargada?? O sea el & lo puse para simular un pasaje por referencia (en pascal var).

Cita:
Primero, en el main, es cargaCalles(calles,dimension), no void cargaCalles(calles,dimension)
:P me olvide de borrarlo cuando hice el copy-paste jaja


   OfflineGalería Personal de ezequiel.grilloVer perfil de usuarioEnviar mensaje privadoMSN Messenger
Amadeo
Nivel 9



Registrado: 20 Oct 2008
Mensajes: 1436

Carrera: No especificada
blank.gif
MensajePublicado: Jue Mar 22, 2012 1:31 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Si, porque la variable "calles" ya es un puntero a la matriz, entonces cuando le pasas esa variable a la función, ya le estas pasando la dirección de memoria donde comienza esa matriz.


 Género:Masculino  OcultoGalería Personal de AmadeoVer perfil de usuarioEnviar mensaje privado
ezequiel.grillo
Nivel 4



Registrado: 11 Abr 2011
Mensajes: 74

Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Jue Mar 22, 2012 2:24 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

ahh buenisimo......ya lo corregi y funciono perfecto

gracias


   OfflineGalería Personal de ezequiel.grilloVer perfil de usuarioEnviar mensaje privadoMSN Messenger
Mostrar mensajes de anteriores:      
Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente

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 CrackerTracker
365 Attacks blocked.

Powered by phpBB2 Plus, phpBB Styles and Kostenloses Forum based on phpBB © 2001/6 phpBB Group :: FI Theme :: Mods y Créditos

Foros-FIUBA está hosteado en Neolo.com Cloud Hosting

[ Tiempo: 0.2949s ][ Pedidos: 20 (0.2321s) ]