[#1] [C] Zwalnianie pamieci poleceniem free()
Mam krotkie pytanie. Czy jesli zaalokowalem sobie pamiec dajmy na to w ten sposob:
char *point;
point = (char *) malloc(50);


i pozniej korzystam z tego wskaznika w jakiejs petli np:
int i;
for(i=0; i<20; i++)
{
    printf("Numer %cn", *point);
    *point++;
}


to czy pozniej jak chce zwolnic pamiec polecenien free() to musze ustawic wskaznik znow na poczatek tej zaalokowanej pamieci (np. stworzyc sobie drugi wskaznik *poczatek i wtedy tylko zrobic free(poczatek))?

[#2] Re: [C] Zwalnianie pamieci poleceniem free()

@Lorak, post #1

tak

[#3] Re: [C] Zwalnianie pamieci poleceniem free()

@Lorak, post #1

Alokujesz pamięć, zachowujesz jej wskaźnik. W Twoim przypadku wskazane są dwa wskaźniki - jeden "główny", drugi "roboczy", na którym dokonujesz obliczeń, etc. Na końcu programu zwalniasz pamięć używając "głównego" wskaźnika.
Możesz też zrealizować to w inny sposób - za pomocą tablicy z indeksem, np. point[i]; .

[#4] Re: [C] Zwalnianie pamieci poleceniem free()

@MinisterQ, post #3

mozna zawsze zrobic tak ze uzyc poola i z niego wszystko alokowac,dzieki temu nie trzeba sie na koncu martwic,ofcoz nie wszystko sei da tak.
nie mam ksiazki pod reka ale przy exit() zwlaniana jest pamiec zaalokowana z dystrybutora malloc etc.

[#5] Re: [C] Zwalnianie pamieci poleceniem free()

@MinisterQ, post #3

Dziekuje wszystkim za odpowiedz:)

Co do realizacji tego, nie bardzo rozumiem co moge zrealizowac w ten sposob :D Jesli chodzi o realizacje tego przykladu to tylko pierwsze lepsze co wpadlo mi do glowy. Chodzilo mi tylko o to czy musze przestawic wskaznik pozniej na poczatek, i juz wiem:) pozdr.

[#6] Re: [C] Zwalnianie pamieci poleceniem free()

@Lorak, post #5

po prostu zamiast wersji wskaźnikowej możesz użyć tablicy z indeksem, i wtedy nie będziesz potrzebować dodatkowego wskaźnika na pamięć. Poza tym operować indeksem na tablicy jest prościej niż bawić się w arytmetykę na wskaźnikach.

[#7] Re: [C] Zwalnianie pamieci poleceniem free()

@Lorak, post #5

Zeby ci zobrazowac o co chodzi:

wyobraz sobie ze alokujesz pamiec dla ok. 40 roznych elementow,struktur etc.
pod koniec pracy twojego programu musisz to wszystko zwolnic,wiec wywolujesz 40 razy memfree,free etc a tak to jedna procedura tj usuniecie poola DeletePool i z glowy.

[#8] Re: [C] Zwalnianie pamieci poleceniem free()

@AmiChris, post #7

No rozumiem:) Na razie jednak nie kombinuje z zarzadzaniem pamiecia az tak bardzo, ale dzieki za podpowiedz:)

Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem