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);


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?


                                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 for information about our company.

_______________________________________________ mailing list
To unsubscribe, send any mail to ""

Reply via email to