This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: freeing part of memory



--- On Tue, 1/5/10, £ukasz <blurrpp@yahoo.com> wrote:

> From: £ukasz <blurrpp@yahoo.com>
> Subject: Re: freeing part of memory
> To: thomas.martitz@student.htw-berlin.de
> Date: Tuesday, January 5, 2010, 11:42 AM
> 
> 
> --- On Tue, 1/5/10, Thomas Martitz <thomas.martitz@student.HTW-Berlin.de>
> wrote:
> 
> > From: Thomas Martitz <thomas.martitz@student.HTW-Berlin.de>
> > Subject: Re: freeing part of memory
> > To: gcc-help@gcc.gnu.org
> > Date: Tuesday, January 5, 2010, 3:02 AM
> > Am 05.01.2010 02:21, schrieb
> > £ukasz:
> > > Hi, i have simple question about freeing only
> part of
> > allocated memory.
> > > Supouse that at begining of computatnion i
> reserwed (
> > malloc,relloc, etc) n bytes, after end of compuation i
> need
> > only n/2 bytes so i want to free the rest of n/2
> bytes. I
> > could ofcourse use freeloc(beg.adress+n/2) after
> creating in
> > memory apropriate structure usualy created by malloc
> to
> > force freeloc to free only n/2 bytes, but maybe there
> is
> > another way, for example using new and delate.
> > >
> > > Lukas
> > >
> > >
> > >
> > >? ? 
> > 
> > You use realloc with n/2. This will (very likely) in
> fact
> > allocate in a 
> > new ram area, so you possibly want to copy over the
> data
> > from the old 
> > allocated space. If you are done with the space you
> > allocated first, you 
> > free the whole thing.
> > 
> > You cannot use "freeloc(beg.adress+n/2) " (assuming
> you
> > mean free() here).
> > 
> > That's really a general C question, not a gcc related
> one.
> > 
> > Best regards.
> > 
 
 Yep i know that is strictly C question but i knew that some
 one would know answer here ;). Any way free is possible to
 use, but you have to cheat somehow, when you use malloc,
 small structure is created wchich tells 'free', amoung
 others information, how many bytes have to be freed, if u
 create similar stricture in aprpriate place with changed
 amount of memory to be freed, you can use free. Solution
 with copy is too long so if there are no other ways, better
 is to reserve big pice of memory and create for ex. in
 assembler your own way to manage memory inside this.
 
 Best regards





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]