matematykaszkolna.pl
Struktrurka do wczytywania pliku do pamięci Mariusz: Załóżmy że chcemy wczytać do pamięci zawartość jakiegoś stosunkowo małego pliku Wg mnie przydałaby się strukturka struct node{ int nol; //numer linii w pliku int nochil; //liczba znaków w linii char* line; //zawartość linii struct node* next; //wskaźnik do węzła przechowującego zawartość następnej linii w pliku struct node* prev; //wskaźnik do węzła przechowującego zawartość poprzedniej linii w pliku }; Teraz przydałoby się napisać funkcje do obsługi tej strukturki Z pola int nochil można by zrezygnować gdyby wymyślić jakiś inny sposób allokacji pamięci na tablicę znakową char* line Z pola struct node* prev też można by zrezygnować ale wtedy po strukturce poruszalibyśmy się tylko w jedną stronę
25 wrz 16:58
g: Proponuję inaczej: 1) dowiedzieć się jaka jest długość pliku, 2) zaalokować pamięć i wczytać plik jednym ruchem, 3) pierwszy raz przejrzeć plik żeby policzyć linie, przy okazji znaki końca linii można pozamieniać na zera, 4) zaalokować pamięć na wektor pointerów na początki linii, 5) drugi raz przejrzeć plik żeby nadać wartości pointerom.
25 wrz 20:04
Mariusz: Chciałbym czytać plik z dysku tylko raz Pomyślałem o liście bo nie wiemy ile jest znaków w linii a łańcuch w C jest trochę kiepsko pomyślany tzn jako tablica znakowa więc aby zaallokować pamięć na niego trzeba znać jego długość Po wtóre nie znamy liczby linii w pliku Może taka strukturka byłaby lepsza struct node{ void *data; struct node* next; struct node* prev; };
13 paź 03:52