From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,a5bde054ac3effc5 X-Google-Attributes: gid103376,public From: Andy Askey Subject: Re: Unbounded string deallocation Date: 1999/08/26 Message-ID: <37C54509.17E067C1@res.raytheon.com>#1/1 X-Deja-AN: 517438703 Content-Transfer-Encoding: 7bit References: <37C46FD4.A42CC1A1@res.raytheon.com> <7q1tff$1n9$1@cnn.Princeton.EDU> X-Accept-Language: en Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@swl.msd.ray.com X-Trace: swlmail.msd.ray.com 935671547 31908 199.46.172.100 (26 Aug 1999 12:45:47 GMT) Organization: Raytheon Systems Company Mime-Version: 1.0 NNTP-Posting-Date: 26 Aug 1999 12:45:47 GMT Newsgroups: comp.lang.ada Date: 1999-08-26T12:45:47+00:00 List-Id: 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? Thanx. Andy "Martin C. Carlisle" wrote: > > Actually, the great thing about Ada.Strings.Unbounded is that the > LRM requires it not to leak memory. See LRM A.4.5(88). > This means that when an unbounded string is reassigned, or goes out of > scope, the memory will be reclaimed. > > To use it for a brief period of time, use a declare block. > > --Martin > > In article <37C46FD4.A42CC1A1@res.raytheon.com>, > Andy Askey wrote: > >I am looking into using Ada.Strings.Unbounded for dynamically creating > >temporary storage of character arrays. When I am finished processing > >the string, I want to deallocate it. I found a "Free" routine in the > >spec but this uses a pointer to STRING and not UNBOUNDED_STRING. > > > >From the Apex ada.strings.unbounded.1.ada => > > > > type Unbounded_String is private; > > type String_Access is access all String; > > procedure Free (X : in out String_Access); > > > >Can anyone help me out with the deallocation? Anyone have a better idea > >for dynamically allocating and deallocating memory for a small to medium > >size byte array? > > > >Thanx. > >-- > >--------------------------------------------------- > >| Andy Askey | > >| Software Engineer | > >| Raytheon Systems Company | > >| 670 Discovery Drive, Huntsville, AL 35806 | > >| Phone: (256) 971-2367 Fax: (256) 971-2306 | > >| andrew_j_askey@res.raytheon.com | > >--------------------------------------------------- > > -- > Martin C. Carlisle, Asst Prof of Computer Science, US Air Force Academy > carlislem@acm.org, http://www.usafa.af.mil/dfcs/bios/carlisle.html > DISCLAIMER: This content in no way reflects the opinions, standards or > policy of the US Air Force Academy or the United States Government. -- --------------------------------------------------- | Andy Askey | | Software Engineer | | Raytheon Systems Company | | 670 Discovery Drive, Huntsville, AL 35806 | | Phone: (256) 971-2367 Fax: (256) 971-2306 | | andrew_j_askey@res.raytheon.com | ---------------------------------------------------