Free mem...
5 отговора
256 прегледа
Free mem...
Kak moga da osvobodq pamet zaeta ot nesto si, ako imam ukazatel kym nacaloto na tazi pamet.(imam predvid grubia metod bez da me interesuva dali nesto ste uvisne i t.n. --- Vazmozno li e po tozi nacin). Problema e, ce polzvam OCX kontrola, v kojato ima greshka i iztica pamet. Az namerih kade se gubi, no ne moga da ja osvoboda...:-) Pametta triabva da se osvobozdava nezavisimo s kakvo(kakva function) e bila zadelena - prosto ia obiaviavame za svobodna...
Blagodara predvaritelno.
Blagodara predvaritelno.
Re: Free mem...
tova vuobshte njama da e reshenie na problema - naj-dobre nameri koj leakwa.
Ako wsichki moduli/app izpolzwaha samo edin edinstwen memory manager, i edin edinstwen heap (ako e heapov memory manager) - to sigurno bi rabotilo - no realno ako poglednesh - mozhe da ima memory manager w memory manager-a.
Ako e prosto GlobalFree - mozhe i da stane, no ako razchita na neshto drugo... riskovano
To err is human
To stderr is inhuman
Ako wsichki moduli/app izpolzwaha samo edin edinstwen memory manager, i edin edinstwen heap (ako e heapov memory manager) - to sigurno bi rabotilo - no realno ako poglednesh - mozhe da ima memory manager w memory manager-a.
Ako e prosto GlobalFree - mozhe i da stane, no ako razchita na neshto drugo... riskovano
To err is human
To stderr is inhuman
Re: Free mem...
drug primer:
ako pametta e zaeta ot masiv ot C++ clasove s destruktor - to obiknoweno pri alokiraneto (no pak zawisi ot realizazicata) - masiva ima otprede cookie socheshto nomera na elementite w masiva. Ako iskash da triesh direktno - to ne se znae -> delete ili delete [] da se wika -> poslednoto prosto obhozhda element po element i wika destruktorite za wseki element.
To err is human
To stderr is inhuman
ako pametta e zaeta ot masiv ot C++ clasove s destruktor - to obiknoweno pri alokiraneto (no pak zawisi ot realizazicata) - masiva ima otprede cookie socheshto nomera na elementite w masiva. Ako iskash da triesh direktno - to ne se znae -> delete ili delete [] da se wika -> poslednoto prosto obhozhda element po element i wika destruktorite za wseki element.
To err is human
To stderr is inhuman
Re: Free mem...
това за cookieто сигурен ли си? защото аз си мисля че го правят с началото + i*sizeof(type).
абе мисля си че ако беше вътрешен алок, то нямаше да има изтичане, защото щеше при изход да освободи целия си хийп. така че е вероятно да стане със просто освобождаване на указателя.
абе мисля си че ако беше вътрешен алок, то нямаше да има изтичане, защото щеше при изход да освободи целия си хийп. така че е вероятно да стане със просто освобождаване на указателя.
Re: Free mem...
za cookieto - prosto njakoi kompilatori (w zawisimost ot platformata) taka go pravjat. No ne e unificirano mezhdu wsichki (wsushnost te se opitwat sus poslednoto ABI).
To err is human
To stderr is inhuman
To err is human
To stderr is inhuman
Re: Free mem...
"защото щеше при изход да освободи целия си хийп" --> точно това става - при изход от програмата се освобождава цялата изтекла памет о всичко е ОК.Ама това не върши работа.