comp.lang.ada
 help / color / mirror / Atom feed
From: "David C. Hoos, Sr." <david.c.hoos.sr@ada95.com>
Subject: Re: Unbounded string deallocation
Date: 1999/08/26
Date: 1999-08-26T00:00:00+00:00	[thread overview]
Message-ID: <7q3ghu$cqv@hobbes.crc.com> (raw)
In-Reply-To: 37C54509.17E067C1@res.raytheon.com


Andy Askey <askeya@res.raytheon.com> wrote in message
news:37C54509.17E067C1@res.raytheon.com...
> Martin,
> Thanx for the info.  My unbound string never goes out of scope until I
> terminate my program (which is why I "thought" needed to deallocate it
> myself).  If all I have to do to reclaim the memory is to create a new
> string using the same variable, then this takes care of all my
> problems.  Just to make sure I understand this correctly:
>
> my_string : ada.strings.unbounded_string;
> begin
>
>   -- grab approx 1024 bytes of memory
>   my_string := new ada.strings.unbounded_string.To_Unbound_String(1024);
>
>   -- give back the 1024 bytes and grab 2048 new memory bytes
>   my_string := new ada.strings.unbounded_string.To_Unbound_String(2048);
>
> end
>
> Is this correct.  I know am being simplistic with the actually memory
> bytes allocated. But do I have the theory correct?
>

It's even simpler.  One doesn't need to allocate any particular size.
One can just keep appending, as necessary.  See the following example.
After use, assigning the null_unbounded_string deallocates the memory.
Then, when desired, begin appending again.

with Ada.Text_IO;
with Ada.Strings.Unbounded;
procedure Demo_Unbounded_Strings is
   My_String : Ada.Strings.Unbounded.Unbounded_String;
begin
   Ada.Strings.Unbounded.append
     (Source   => My_String,
      New_Item => "Now is the time");
   Ada.Strings.Unbounded.append
     (Source   => My_String,
      New_Item => " for all good men");
   Ada.Strings.Unbounded.append
     (Source   => My_String,
      New_Item => " to come to the aid of their country.");

   Ada.Text_Io.Put_Line
     (Ada.Strings.Unbounded.To_String (My_String));

   My_String := Ada.Strings.Unbounded.Null_Unbounded_String;

end Demo_Unbounded_Strings;
---------------------------------------------------






  parent reply	other threads:[~1999-08-26  0:00 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-08-25  0:00 Unbounded string deallocation Andy Askey
1999-08-25  0:00 ` Martin C. Carlisle
1999-08-26  0:00   ` Andy Askey
     [not found]     ` <37c552fd@news1.us.ibm.net>
1999-08-26  0:00       ` Michael F. Yoder
1999-08-26  0:00       ` Marin David Condic
1999-08-29  0:00         ` Robert Dewar
1999-08-30  0:00           ` Marin David Condic
1999-08-30  0:00             ` Robert Dewar
1999-08-26  0:00     ` Martin C. Carlisle
1999-08-26  0:00     ` Andy Askey
1999-08-26  0:00     ` David C. Hoos, Sr. [this message]
1999-08-26  0:00   ` Pascal Obry
1999-08-26  0:00 ` David C. Hoos, Sr.
1999-08-30  0:00 ` Andy Askey
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox