Hola estoy trabajando es c++ desde hace poco tiempo, quise hacer algo mas jugado, pero nose que estoy haciendo mal. Arme una matriz de struct pero nose si estoy usando mal las cabeceras o utilizando mal los typedef. Si alguien me puede ayudar se lo agradecería mucho.
En funciones.h tengo:
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
typedef struct {int padron; string nombre;}datos;
typedef datos alumno[2][2];
void cargarmatriz(alumno alu);
void imprime(alumno alu);
En funciones.cpp tengo:
#include <iostream>
#include <string>
#include <cstdlib>
#include "funciones.h"
using namespace std;
void cargarmatriz(alumno alu)
{
for(int i=0; i<2; i++)
{
for(int j=0; j<2; j++)
{
cout << "padron: " << endl;
cin >> alu[j].padron;
cout << "nombre " << endl;
cin >> alu[j].nombre;
cout << endl;
}
}
}
void imprime(alumno alu)
{
for(int r=0; r<2; r++)
{
for(int t=0; t<2; t++)
{
cout << alu[r][t].padron << endl;
cout << alu[r][t].nombre << endl;
}
}
}
Y finalmente en main.cpp:
#include <iostream>
#include <string>
#include <cstdlib>
#include "funciones.h"
using namespace std;
int main()
{
typedef struct {int padron; string nombre;}datos;
typedef datos alumno[2][2];
alumno alu;
cargarmatriz(alu);
imprimir(alu);
return 0;
}
El error me lo marca en cargarmatriz y el mensaje es:
...main.cpp|26|error: cannot convert 'main()::datos (*)[2]' to 'datos (*)[2]' for argument '1' to 'void cargarmatriz(datos (*)[2])'|