comp.lang.ada
 help / color / mirror / Atom feed
From: Jeffrey Carter <spam.jrcarter.not@spam.not.acm.org>
Subject: Re: Address arithmetic alternatives
Date: Thu, 09 Jun 2011 11:53:01 -0700
Date: 2011-06-09T11:53:01-07:00	[thread overview]
Message-ID: <isr7h2$u1e$1@tornado.tornevall.net> (raw)
In-Reply-To: <5bf3d787-c0b0-45c7-841f-0f08c93a3655@e26g2000vbz.googlegroups.com>

On 06/09/2011 03:40 AM, milouz wrote:
>
>> More correctly, you *think* you need to play with address arithmetic. You may be
>> right, but address arithmetic is needed extremely rarely in Ada. Ada has
>> alternatives to most address arithmetic in C.
>
> You're probably right. But what are those alternatives ?

That depends on what you're trying to do. Probably the most common is (I 
apologize if my C is wrong)

p = a;
while (*p++) {
    /* do something with *p */
}

(which is wrong any since "a" may not contain a zero, and you go off accessing 
memory you shouldn't. This kind of thing is why C coders are creating yet more 
buffer-overflow vulnerabilities even as I type)

In Ada, one uses indexing:

for I in A'range loop
    -- Do something with A (I).
end loop;

-- 
Jeff Carter
"I was hobbling along, minding my own business, all of a
sudden, up he comes, cures me! One minute I'm a leper with
a trade, next minute my livelihood's gone! Not so much as a
'by your leave!' You're cured, mate. Bloody do-gooder!"
Monty Python's Life of Brian
76



  parent reply	other threads:[~2011-06-09 18:53 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-07 15:32 using `use' : what is the best practice ? milouz
2011-06-07 15:59 ` Simon Wright
2011-06-07 16:22 ` Dmitry A. Kazakov
2011-06-07 16:59   ` Simon Wright
2011-06-07 17:25     ` Dmitry A. Kazakov
2011-06-07 17:29       ` Simon Wright
2011-06-07 19:38         ` Dmitry A. Kazakov
2011-06-11 14:11           ` Yannick Duchêne (Hibou57)
2011-06-08  9:07       ` Paul Colin Gloster
2011-06-08 11:20         ` stefan-lucks
2011-06-08 16:45           ` Vinzent Hoefler
2011-06-11 14:05       ` Yannick Duchêne (Hibou57)
2011-06-07 17:33 ` Pascal Obry
2011-06-08  2:42   ` Randy Brukardt
2011-06-12  5:09   ` Yannick Duchêne (Hibou57)
2011-06-07 18:51 ` Jeffrey Carter
2011-06-08  0:04   ` Peter C. Chapin
2011-06-07 19:32 ` Anders Wirzenius
2011-06-07 23:38 ` Shark8
2011-06-12  5:19   ` Yannick Duchêne (Hibou57)
2011-06-12  7:55   ` Stephen Leake
2011-06-08  4:25 ` Jerry
2011-06-08  9:31   ` milouz
2011-06-08 17:17     ` Ludovic Brenta
2011-06-08 18:43     ` Jeffrey Carter
2011-06-09 10:40       ` Address arithmetic alternatives milouz
2011-06-09 11:25         ` Georg Bauhaus
2011-06-09 18:53         ` Jeffrey Carter [this message]
2011-06-08 19:22     ` using `use' : what is the best practice ? Pascal Obry
2011-06-09  1:17     ` Shark8
2011-06-09 10:44       ` milouz
2011-06-08  6:06 ` stefan-lucks
2011-06-15  2:25 ` Adrian Hoe
replies disabled

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