Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: amchacon en 9 Julio 2013, 22:42 PM

Título: Pasar matriz bidimensional a estrucutra
Publicado por: amchacon en 9 Julio 2013, 22:42 PM
Tengo una matriz tal que:

Código (cpp) [Seleccionar]
char Matriz[29][31];

Quiero pasar una referencia de esta a una estructura como si la pasase a una función. No me vale copiarla porque quiero que se reflejen los cambios... ¿Alguna idea?
Título: Re: Pasar matriz bidimensional a estrucutra
Publicado por: rir3760 en 10 Julio 2013, 02:43 AM
¿C o C++?

En C lo mas cercano a una referencia consiste en declarar el campo como "char (*Matriz)[31];" y llevar nota manualmente del numero de elementos.

En C++ el tipo debe ser "char (&Matriz)[29][31];".

Un saludo
Título: Re: Pasar matriz bidimensional a estrucutra
Publicado por: amchacon en 10 Julio 2013, 02:51 AM
Cita de: rir3760 en 10 Julio 2013, 02:43 AM
¿C o C++?

En C lo mas cercano a una referencia consiste en declarar el campo como "char (*Matriz)[31];" y llevar nota manualmente del numero de elementos.

Un saludo
C++

El tipo que has puesto no es válido:
Código (cpp) [Seleccionar]
struct Datos
{
 //...
 char (&Tablero[31][29]);
};


Citarerror: la declaración de 'Tablero' como una matriz de referencias|

¡Un saludo!  :D
Título: Re: Pasar matriz bidimensional a estrucutra
Publicado por: CCross en 10 Julio 2013, 03:08 AM
Cita de: amchacon en 10 Julio 2013, 02:51 AM
El tipo que has puesto no es válido:
Código (cpp) [Seleccionar]
struct Datos
{
 //...
 char (&Tablero[31][29]);
};


Es un error de sintaxis los parentesis solo abarcan el nombre de la matriz como ha indicada
el amigo rir3760 mas arriba.

Saludos
Título: Re: Pasar matriz bidimensional a estrucutra
Publicado por: amchacon en 10 Julio 2013, 03:23 AM
Perfecto, además tenía que añadir un contructor para inicializar la referencia:

Código (cpp) [Seleccionar]
Datos(char (&tablero)[29][31]) : Tablero(tablero) {}

¡Muchas gracias!  :-*