comp.lang.ada
 help / color / mirror / Atom feed
From: "Robert I. Eachus" <rieachus@comcast.net>
Subject: Re: C array to Ada pointer to unconstrained array without copying memory
Date: Wed, 08 Oct 2003 02:14:49 GMT
Date: 2003-10-08T02:14:49+00:00	[thread overview]
Message-ID: <3F837303.9040202@comcast.net> (raw)
In-Reply-To: mailman.41.1065561795.25614.comp.lang.ada@ada-france.org

Duncan Sands wrote:

> So far so good.  Now suppose I do:
> 
> Y : Array_Pointer := new Array_Type' (X);  -- (*)
> 
> The object I want is Y.  What is the problem?  The problem
> is that line (*) involves allocating memory and copying the
> data from X to that memory.  I would like to end up with Y
> without performing the copy (and without reallocating
> memory for the array data).

What is wrong with:

Y: Array_Type;
for Y'Address use X'Address;

..if you want X and Y to be two different views of the same memory.
Notice that there is no need for an explicit pointer here, but if X is a 
  pointer as in your example, you may want to do:

Y: Array_Type;
for Y'Address use X.all'Address;

Oh, and if there is initialization for the elements of Array_Type you 
may want to add a pragma Import; to turn off initialization.
-- 
                                          Robert I. Eachus

"Quality is the Buddha. Quality is scientific reality. Quality is the 
goal of Art. It remains to work these concepts into a practical, 
down-to-earth context, and for this there is nothing more practical or 
down-to-earth than what I have been talking about all along...the repair 
of an old motorcycle."  -- from Zen and the Art of Motorcycle 
Maintenance by Robert Pirsig




  parent reply	other threads:[~2003-10-08  2:14 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-07 14:43 C array to Ada pointer to unconstrained array without copying memory Duncan Sands
2003-10-07 18:30 ` tmoran
2003-10-07 19:24   ` Duncan Sands
2003-10-08  0:02   ` sk
     [not found]   ` <3F83540E.5000302@myob.com>
2003-10-08  9:18     ` Duncan Sands
2003-10-07 20:00 ` Jeffrey Carter
2003-10-07 20:39   ` Duncan Sands
2003-10-08  1:27     ` Jeffrey Carter
2003-10-07 20:53 ` Chad R. Meiners
2003-10-07 21:24   ` Duncan Sands
2003-10-07 22:44     ` C array to Ada pointer to unconstrained array without copyingmemory Chad R. Meiners
2003-10-07 22:52       ` Chad R. Meiners
2003-10-08  9:20         ` Duncan Sands
2003-10-08 16:16           ` C array to Ada pointer to unconstrained array withoutcopyingmemory Chad R. Meiners
2003-10-08 16:49             ` Duncan Sands
2003-10-08  2:14     ` Robert I. Eachus [this message]
2003-10-08  9:27       ` C array to Ada pointer to unconstrained array without copying memory Duncan Sands
2003-10-08 22:43         ` Robert I. Eachus
2003-10-09  9:31           ` Duncan Sands
2003-10-08 14:07 ` Steve Adams
2003-10-08 14:33   ` Preben Randhol
2003-10-09 23:04     ` Steve Adams
2003-10-09 23:11       ` Steve Adams
2003-10-08 16:30   ` Duncan Sands
2003-10-09 22:59     ` C array to Ada pointer to unconstrained array without copyingmemory Steve Adams
2003-10-10  7:02       ` Duncan Sands
2003-10-10 16:44         ` C array to Ada pointer to unconstrained array withoutcopyingmemory Steve Adams
2003-10-23 21:27   ` C array to Ada pointer to unconstrained array without copying memory Craig Carey
replies disabled

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