Estoy en mi andadura de aprender c y ahora me he topado con otro problema, aunque tambien es una cuestion que no se si se puede hacer..
Tengo un archivo de una longitud fija y los datos que tiene coincide con una estructura que tengo en el programa..
La longitud del archivo es de 4 bytes, los 2 primeros corresponden al segundo miembro de la funcion y los bytes 3 y 4 corresponden al tercer miembro.
Podria al leer el archivo colocar estos datos directamente dentro de la estructura y sin ir metiendolos miembro por miembro?
Código C:
Ver original// El archivo al que hace referencia t1 contiene estos bytes: 20 21 22 23
// t1 es la ruta de mi archivo
HANDLE hFile = CreateFile(t1, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE) return ;
DWORD dwBytesRead = 0;
char *buffer
= (char*)calloc(sizeof(char), 4); ReadFile(hFile, buffer, 4, &dwBytesRead, NULL);
// Ahora en buffer tengo el archivo al completo
// Mi estructura es esta...
struct estructura {
struct otra_estructura otraestructura;
byte primeros [2];
byte segundos [2];
};
estructura mystruct[4]; // Declaro 4 porque son 4 archivos aunque vamos ahora con el primero
// Me gustaria saber si es posible hacer algo como en una de estas dos opciones
// 1)
mystruct[0],primeros = buffer[0-2]; // Algo asi como indicar la posicion inicial y final del buffer y asignarselo al miembro de la estructura
mystruct[0].segundos = buffer[2-4];
// 2) o bien haciendolo de esta manera,
// Cogemos la posicion de memoria donde esta estructura[0].primeros y sabiendo que los primeros bytes correspondonden a ese miembro y los siguientes dos a estructura[0].segundos.
// hacer algo como....
mystruct[0].primeros = buffer;
Lamento no ser mas preciso, pero mi nivel de c/c++ es minimo, se lo que son los punteros pero a la hora de escribir codigo me siguo confundiendo.
Gracias