Czy wie ktoś jak rozwiązać zapis dużych plików w C++ a dokładniej
buduję bazę danych utworów mp3
w klasie mam pola
int ile;
char autor[100000][40];
char tytul[100000][40];
char album[100000][40];
char info[100000][1000];
char nazwapliku[100000][200];
char nazwa[100000][100];
int priorytet[100000];
char kategoria[100000][20];
char podkategoria[100000][20];
int fade[100000];
bool zablokowane[100000];
int id[100000];
oczywiście tworzone dynamicznie ;)
i gdy próbuje to zapisać to wyskakuje EAccessViolation :( a plik ma tylko 1 mb a samo pole autor ma około 4 mb :| próbowałem zapisać po kolei tylko tyle rekordów ile używam lecz wtedy przy przepisywaniu do struktóry wyskoczył ten sam błąd :( co i teraz mam
funkcja zapisująca
fstream plik;
plik.open("osoba.bin", ios::out | ios::binary);
plik.write((char*)this,sizeof(int)
+ sizeof(char)*40*100000
+ sizeof(char)*40*100000
+ sizeof(char)*40*100000
+ sizeof(char)*1000*100000
+ sizeof(char)*200*100000
+ sizeof(char)*100*100000
+ sizeof(char)*40*100000
+ sizeof(int)*100000
+ sizeof(char)*20*100000
+ sizeof(char)*20*100000
+ sizeof(int)*100000
+ sizeof(bool)*100000
+ sizeof(int)*100000
+2 );
plik.close();