Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Jun 2009 20:51:37 -0400
From:      Brad Mettee <bmettee@pchotshots.com>
To:        Robert Huff <roberthuff@rcn.com>,questions@freebsd.org
Subject:   Re: OT: C syntax question
Message-ID:  <4.3.2.7.2.20090629204828.02ee3cb8@mail.pchotshots.com>
In-Reply-To: <19017.24376.343126.389436@jerusalem.litteratus.org>

next in thread | previous in thread | raw e-mail | index | archive | help
At 08:41 PM 6/29/2009, Robert Huff wrote:

>         Let us suppose I have a structure:
>
>struct CONTINENT {
>         ...
>}
>
>         I use this to create an array of pointers to said struct:
>
>struct CONTINENT *Asia[10][10];
>
>         Now I pass this array to a function:
>
>         plate_shift(Asia, (int) foo, (float) bar);
>
>         In the definition of the function, I say:
>
>int plate_shift(Cont,f,b)
>         struct CONTINENT *Cont[10][10];
>         int f;
>         float b;
>{
>         ...
>}
>
>         and the compiler does not complain.  If, however, I try to
>prototype the function as:
>
>   extern int plate_shift(struct CONTINENT *[][],int,float);
>
>         with:
>
>CFLAGS = -Wall -std=c99
>
>         I get:
>
>error: array type has incomplete element type
>
>         Changing to:
>
>   extern int plate_shift(struct CONTINENT *foo[][],int,float);
>
>         returns the same error.
>         K&R 2ed is not helpful, nor is a quick poke around the web.
>         What am I forgetting?
>
>         Respectfully,
>
>
>                                 Robert Huff

I believe since you are declaring the array as having a fixed number of 
elements, you must declare the function to take it the same way, like this:

   extern int plate_shift(struct CONTINENT *[10][10],int,float);

Without the 10,10 size definition, the plate_shift function would have no 
idea how big the array of pointers actually is.


         Brad Mettee
         PC HotShots, Inc.
         Baltimore, MD
         (410) 426-7617

      -> Let us bring out the *Power* of your PCs. <-
-> Custom Business Software Solutions since 1991 <-

visit http://www.pchotshots.com for information about our company.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4.3.2.7.2.20090629204828.02ee3cb8>