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;
---------------------------------------------------
next prev 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