Foro de elhacker.net

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
  1. 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
¿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
  1. struct Datos
  2. {
  3.  //...
  4.  char (&Tablero[31][29]);
  5. };
  6.  

Citar
error: 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
El tipo que has puesto no es válido:
Código
  1. struct Datos
  2. {
  3.  //...
  4.  char (&Tablero[31][29]);
  5. };
  6.  

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
  1. Datos(char (&tablero)[29][31]) : Tablero(tablero) {}

¡Muchas gracias!  :-*