From: wv9557@yahoo.com (Will)
Subject: Re: memory leakages with Ada?
Date: 20 Mar 2002 20:31:56 -0800
Date: 2002-03-21T04:31:56+00:00 [thread overview]
Message-ID: <4a885870.0203202031.6eedf2ca@posting.google.com> (raw)
In-Reply-To: 3C9629E3.8030109@home.com
"Warren W. Gay VE3WWG" <ve3wwg@home.com> wrote in message news:<3C9629E3.8030109@home.com>...
>
> This was actually one of my first observations when I started learning Ada95.
> A C function does not have a simple way to return a string (a few basic
> choices exist, though one can vary the theme somewhat). C++ gets around this
> with objects, but they end up resorting to malloc() inside of the object to
> carry this off. (excuse the lack of const keywords in these C examples) :
>
> /* The malloc approach */
> char *uppercase(char *s) {
> char *buf = strdup(s); /* Clone the string for modification */
>
> ...do uppercasing on buf...
> return buf;
> }
>
> The caller gets a dynamically allocated string back, and must free it when
> he is finished with it. Ug.
>
> /* The dirty old static buffer approach */
> char *uppercase(char *s) {
> static char my_big_buf[4096];
>
> strcpy(my_big_buf,s);
> ...do uppercasing on my_big_buf...
> return my_big_buf;
> }
>
> This is very bad, because it won't work for all sized strings. It is also
> very unsafe in threaded programs. Ug!
>
> /* The user supplied buffer approach */
> char *uppercase(char *s, char *user_buf) {
> strcpy(user_buf,s);
> ...do uppercasing in user_buf...
> return user_buf;
> }
The horrible thing about these examples is the absence of bounds checkings.
next prev parent reply other threads:[~2002-03-21 4:31 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-03-14 14:07 memory leakages with Ada? Calvin Ow
2002-03-14 14:31 ` Larry Kilgallen
2002-03-14 20:42 ` Nick Roberts
2002-03-14 21:11 ` Larry Kilgallen
2002-03-14 21:07 ` Anh_Vo
2002-03-14 20:12 ` Marin David Condic
2002-03-15 9:37 ` John McCabe
2002-03-15 12:55 ` Pat Rogers
2002-03-16 4:36 ` Will
2002-03-16 4:53 ` Pat Rogers
2002-03-16 12:21 ` Larry Kilgallen
2002-03-16 9:13 ` DPH
2002-03-16 14:38 ` Pat Rogers
2002-03-16 14:56 ` DPH
2002-03-16 15:51 ` Preben Randhol
2002-03-16 16:39 ` DPH
2002-03-16 19:51 ` Pat Rogers
2002-03-16 20:40 ` DPH
2002-03-17 19:31 ` Richard Riehle
2002-03-17 21:49 ` Pat Rogers
2002-03-17 22:02 ` Pat Rogers
2002-03-18 22:32 ` Randy Brukardt
2002-03-18 22:47 ` Pat Rogers
2002-03-18 7:22 ` Richard Riehle
2002-03-18 17:35 ` Marin David Condic
2002-03-17 16:26 ` Steve Doiel
2002-03-16 20:18 ` Robert A Duff
2002-03-16 20:36 ` DPH
2002-03-15 14:20 ` Marin David Condic
2002-03-18 17:54 ` Warren W. Gay VE3WWG
2002-03-18 19:54 ` Hyman Rosen
2002-03-18 20:34 ` Larry Kilgallen
2002-03-18 21:18 ` Hyman Rosen
2002-03-18 21:45 ` Larry Kilgallen
2002-03-20 1:19 ` Hyman Rosen
2002-03-20 17:06 ` Warren W. Gay VE3WWG
2002-03-20 17:56 ` Larry Kilgallen
2002-03-20 17:48 ` Marin David Condic
2002-03-22 0:25 ` Matthew Woodcraft
2002-03-22 5:10 ` Hyman Rosen
2002-03-18 22:18 ` Marin David Condic
2002-03-20 20:49 ` Bertrand Augereau
2002-03-21 4:31 ` Will [this message]
2002-03-15 16:00 ` Hyman Rosen
2002-03-15 21:59 ` Chad R. Meiners
2002-03-17 5:43 ` Kevin Cline
2002-03-17 7:22 ` Chad R. Meiners
2002-03-18 4:09 ` Kevin Cline
2002-03-18 16:54 ` Chad R. Meiners
2002-03-18 17:38 ` Warren W. Gay VE3WWG
2002-03-19 9:21 ` John McCabe
2002-03-19 17:11 ` Warren W. Gay VE3WWG
2002-03-19 17:16 ` Pat Rogers
2002-03-19 17:51 ` David C. Hoos
2002-03-19 18:20 ` Frank J. Lhota
2002-03-19 23:43 ` Mark Johnson
2002-03-20 15:09 ` Frank J. Lhota
2002-03-17 7:27 ` Hyman Rosen
2002-03-18 3:52 ` Kevin Cline
2002-03-18 5:37 ` Hyman Rosen
2002-03-15 17:41 ` Kevin Cline
2002-03-15 18:00 ` Marin David Condic
2002-03-15 18:08 ` Hyman Rosen
2002-03-16 10:15 ` Kevin Cline
2002-03-14 23:14 ` Kevin Cline
2002-03-15 3:20 ` Steve Doiel
2002-03-15 9:32 ` John McCabe
2002-03-15 15:46 ` Hyman Rosen
2002-03-15 17:29 ` Kevin Cline
2002-03-15 15:48 ` Jeffrey Carter
2002-03-16 3:05 ` Steve Doiel
2002-03-16 20:19 ` Jeffrey Carter
2002-03-15 17:25 ` Kevin Cline
2002-03-15 18:03 ` Hyman Rosen
2002-03-16 10:07 ` Kevin Cline
2002-03-17 3:00 ` Hyman Rosen
2002-03-15 9:27 ` John McCabe
-- strict thread matches above, loose matches on Subject: below --
2002-03-20 6:25 Christoph Grein
2002-03-20 16:35 ` Hyman Rosen
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox