Witam,
Muszę napisać prosty program kompresujacy. W tym celu muszę utworzyć tablice kodową z pliku w postaci:
1
2
3
4
5
6
7
8
9 010110100110100
10 0000
11
12
13 0001
14
15
16
17
Wtym celu napisałem klasę tablica kodowa która tworzy listę jednokierunkową... no i tu jest problem z funkcją malloc.. bo źle przydziela pamieć. Wpisywałem rozmiar przydzielanej pamięci z górką(z palca) ale to nie ladne a program i tak sie psuje(nie zawiesza się jak wcześniej ale przerywa działanie co dziwne omijając system("pause"); na końcu maina...
no węzeł mojej listy:
struct Node
{ std::string literka;
std::string code;
struct Node * nextElement;
};
typedef struct Node *nodePtr;
Chyba chodzi o stringi... bo zmieniłem na int i było oki.(niestety muszę mieć stringi bo te ciagi zero jednykowe sa czasami długie a poza tym łatwiej mi będzie potem do pliku to wrzucić jako binaria(mam juz funkcję).
String jest typem dynamicznym i chyba dlatego to nie działa dobrze:
temp=(struct Node *) malloc (90);
(po tym jak zalokuje pamieć przypisuje string).
PS.
może jak tworzę obiekt klasy ma ona przypisaną tylo jakąś ilośc pamięci, a jak zaczynam tworzyć listę to wychodze poza nią??
Prosze o pomoc bo cały dzień nad tym siedzę:/