La estructura es la siguiente:
Código
long int cantidadAlmacenar = 0; struct guardarArchivo{ long int cantidad = cantidadAlmacenar; long int numero [cantidad] = {0}; };
Y la funcion que transforma la estructura dinámica en el array (en verdad es un método de una clase)es la siguiente:
Código
Pero esta técnica hace aguas por todas partes (ya la he utilizado y funciona cuando la cantidad de valores a almacenar es fija, pero este no es el caso) y el compilador me da el error: "invalid use of non-static data member" en la linea donde pone
void CCifras::guardarArchivo(void) { struct guardarArchivo guardar; struct nodo* guia = comienzo; for(int i = 0; i < cantidad; i++) { guardar.numero[i] = guia.numero; guia = guia.siguiente; } ofstream ficheroEscribir; ficheroEscribir.open ("BaseDatos.dat", ios::out | ios::binary); ficheroEscribir.write((char *) &guardar, sizeof(guardar)); ficheroEscribir.close(); }
Código
.
long int numero [cantidad] = {0};
El caso, si alguien puede decirme cual es el fallo en mi forma de hacerlo o directamente la forma correcta de hacer lo que quiero se lo agradecería XD