OT: C syntax question

Robert Huff roberthuff at rcn.com
Tue Jun 30 00:41:30 UTC 2009


	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



More information about the freebsd-questions mailing list