tengo este codigo
#include <iostream>
using namespace std;
struct map{
int mapa[3];
};
struct cam{
char nombre[20];
};
int main(){
cam nom[3];
map mape;
cin >> nom[0].nombre;
cout << nom[0].nombre;
mape.mapa[0] = nom[0];
return 0;
}
cuando intento compilar sale este error:
main.cpp:18.25: error: cannot convert 'cam' to 'int' in assignment
alguien me podría dar una solución a mi problema
Pues nom[0] es un dato de tipo "cam", y eso lo estás intentando meter en mape.map[0], que es de tipo "int" y no tiene mucho sentido.
Es que eso es lo que quiero, en la posición de un array quiero almacenar un struct, pero quisiera saber como hacerlo
Para almacenar en un array la direccion de un struct puedes hacerlo con punteros:
#include <iostream>
using namespace std;
struct map{
int mapa[3];
};
struct cam{
char nombre[20];
};
int main(){
cam nom[3];
cam *array = new cam[3]; //Declaracion e incializacion del puntero
cin >> nom[0].nombre;
cout << nom[0].nombre << endl;
array[0] = nom[0]; //Asignacion
cout << array[0].nombre ; //mostrando el nombre de la direccion del array[0]
return 0;
}
Espero que te ayude.
Gracias ya lo logre ;D ;D