El caso es que hize primero la función leer que me funcionaba perfectamente, y ahora estoy intentado modificarla para que sea un void, y leerla desde el main.
Atención, la mitad del codigo no es necesario leerselo, ver al final el problema.
El .h es asi:
Código
#ifndef _ej19 #define _ej19 #include <iostream> using namespace std; struct cabecera { int PosInicioMarca; int LongMarca; char *Marca; //[LongMarca*sizeof(char)] char *Comentario; //[100*sizeof(char)] }; cabecera Leer(char *fichero); #endif
y donde está la función es así:
Código
#include <iostream> #include <fstream> #include "ej19.h" #include <stdio.h> #include <stdlib.h> using namespace std; void Leer(cabecera micabecera, char *fichero){ ifstream fi; cabecera micabecera; fi.open(fichero); fi.read(reinterpret_cast <char*> (&micabecera.PosInicioMarca), sizeof(int)); //cout << micabecera.PosInicioMarca << endl; fi.read(reinterpret_cast <char*> (&micabecera.LongMarca), sizeof(int)); //cout << micabecera.LongMarca << endl; micabecera.Marca = new char[sizeof(char) * micabecera.LongMarca]; micabecera.Comentario = new char[sizeof(char) * 100]; fi.read(reinterpret_cast <char *> (micabecera.Marca), sizeof(char) * micabecera.LongMarca); //cout << micabecera.Marca << endl; fi.read(reinterpret_cast <char *> (micabecera.Comentario), sizeof(char) * 100); //cout << micabecera.Comentario << endl; fi.close(); }
me da un error en el fichero leer.cpp en la linea donde pone: cabecera micabecera; (la declaración)
pone: declaration of 'cabecera micabecera' shadows a parametermake
Nunca había tenido este error, y no sé porqué es, por lo tanto estoy bloqueado!
he buscado en google pero nada.
Muchas gracias