[vtk-developers] vtkImageData

Volpe, Christopher R (CRD) volpecr at crd.ge.com
Tue Jun 5 11:42:28 EDT 2001

Yes, this has been true in C as well as C++ since forever. "foo(int a[])" and "foo(int
a[<constant>])" are synonyms for "foo(int *a)". Since any array identifier used in the argument list
to a function call will decay to a pointer to the first element, there is no way to pass an array by
value. But using array syntax in the prototype helps make the intent of the API clear. 

|> -----Original Message-----
|> From: Charl P. Botha [mailto:c.p.botha at its.tudelft.nl]
|> Sent: Tuesday, June 05, 2001 11:34 AM
|> To: vtk-developers at public.kitware.com
|> Subject: Re: [vtk-developers] vtkImageData
|> On Tue, Jun 05, 2001 at 08:57:48AM -0400, Jeff Lee wrote:
|> > prototypes(interface) and their corresponding implementation.  One
|> > example is vtkImageData::GetDimensions(...).  The 
|> interface expects the
|> > argument to be an integer array, and the implementation expects an
|> > int*.  It is a mystery to me as to why other compilers 
|> don't complain
|> > about this (probably an acceptable built-in conversion for most
|> > compilers).  Anyhow, I think that it is good programming 
|> practice to
|> > make the prototype match the implementation.  In the case of
|> This is (afaik) _entirely_ acceptable.  In the case of "int 
|> a[3]", a is also
|> a pointer to the first element of the array, thus of type 
|> "int *".  From my
|> ISO C++ spec, page 58:
|> 4.2 Array-to-pointer conversion 
|> 1 An lvalue or rvalue of type array of N T or array of 
|> unknown bound of T
|> can be converted to an rvalue of type pointer to T.  The 
|> result is a pointer
|> to the first element of the array.
|> Does your compiler claim ISO compliance?
|> -- 
|> charl p. botha      | computer graphics and cad/cam 
|> http://cpbotha.net/ | http://www.cg.its.tudelft.nl/
|> _______________________________________________
|> vtk-developers mailing list
|> vtk-developers at public.kitware.com
|> http://public.kitware.com/mailman/listinfo/vtk-developers

More information about the vtk-developers mailing list