Error Array Type Has Incomplete Element Type
Contents |
here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss the workings and policies of this site About Us Learn more about Stack error array type has incomplete element type struct Overflow the company Business Learn more about hiring developers or posting ads with us
Error Array Type Has Incomplete Element Type In C
Stack Overflow Questions Jobs Documentation Tags Users Badges Ask Question x Dismiss Join the Stack Overflow Community Stack Overflow is a array has incomplete element type 'char ' community of 4.7 million programmers, just like you, helping each other. Join them; it only takes a minute: Sign up GCC: array type has incomplete element type up vote 14 down vote favorite 4 I error array type has incomplete element type gcc have declared a struct, and I try to pass an array of those structs (as well as a double array of doubles, and an integer) into a function. I get an "array type has incomplete element type" message from gcc when I compile it. What have I got wrong in how I pass the struct into the function? typedef struct graph_node { int X; int Y; int active; } g_node; void
Error Label At End Of Compound Statement
print_graph(g_node graph_node[], double weight[][], int nodes); I have also tried struct g_node graph_node[], but I get the same thing. c arrays gcc struct share|improve this question asked Apr 4 '12 at 0:15 Josh 94021632 Are you absolutely positive the struct declaration comes before the function prototype? –Platinum Azure Apr 4 '12 at 0:26 add a comment| 2 Answers 2 active oldest votes up vote 17 down vote accepted It's the array that's causing trouble in: void print_graph(g_node graph_node[], double weight[][], int nodes); The second and subsequent dimensions must be given: void print_graph(g_node graph_node[], double weight[][32], int nodes); Or you can just give a pointer to pointer: void print_graph(g_node graph_node[], double **weight, int nodes); However, although they look similar, those are very different internally. If you're using C99, you can use variably-qualified arrays. Quoting an example from the C99 standard (section ยง6.7.5.2 Array Declarators): void fvla(int m, int C[m][m]); // valid: VLA with prototype scope void fvla(int m, int C[m][m]) // valid: adjusted to auto pointer to VLA { typedef int VLA[m][m]; // valid: block scope typedef VLA struct tag { int (*y)[n]; // invalid: y not ordinary identifier int z[n]; // invalid: z not ordinary identifier }; int D[m]; // valid: auto VLA static int E[m]; //
here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss the workings and policies of error array type has incomplete element type mud this site About Us Learn more about Stack Overflow the company Business error expected specifier qualifier list before Learn more about hiring developers or posting ads with us Stack Overflow Questions Jobs Documentation Tags Users Badges Ask
Array Type Has Incomplete Element Type Extern Struct
Question x Dismiss Join the Stack Overflow Community Stack Overflow is a community of 4.7 million programmers, just like you, helping each other. Join them; it only takes a minute: Sign http://stackoverflow.com/questions/10003270/gcc-array-type-has-incomplete-element-type up C error: array type has incomplete element type up vote 3 down vote favorite 1 I'm trying to compile a program in Ubuntu 11.04 that works well in Windows but it gives the above error. I have added a comment to the line that is causing the error. Here's the code: route_input() { int num_routes;//Variable to act as the loop counter for http://stackoverflow.com/questions/10395054/c-error-array-type-has-incomplete-element-type the loop getting route details int x; char route_id[3]; char r_source[20]; char r_destination[20]; int r_buses; printf("Please enter the number of routes used: \n"); scanf("%d", &num_routes); char routes_arr[num_routes][10];//An array to hold the details of each route printf("\nNumber of routes is %d\n", num_routes); struct route r[num_routes];//An array of structures of type route (This line causes the error) fflush(stdin); for (x = num_routes; x > 0; x--) { printf("\nEnter the route number: "); scanf("%s", r[x].route_num); printf("Route number is %s", r[x].route_num); printf("\nEnter the route source: "); fflush(stdin); scanf("%s", r[x].source); printf("Source = %s", r[x].source); printf("\nEnter the route destination: "); fflush(stdin); gets(r[x].destination); printf("Destination = %s", r[x].destination); printf("\nEnter the number of buses that use this route: "); scanf("%d", &r[x].num_of_buses); printf("Number of buses = %d", r[x].num_of_buses); } for (x = num_routes; x > 0; x--) { printf("\n\n+++Routes' Details+++\nRoute number = %s, Source = %s, Destination = %s, Number of buses for this route = %d\n", r[x].route_num, r[x].source, r[x].destination, r[x].num_of_buses); } } c gcc ubuntu struct share|improve this question edited May 1 '12 at 7:56 Nick 13k52967 asked May 1 '12 at 7:55 diamondtrust66 60110 8 Do not fflush(stdin), it is undefined behavior.
communities company blog Stack Exchange Inbox Reputation and Badges sign up log in tour help Tour Start here for a quick overview of the site Help Center Detailed answers to any questions you http://askubuntu.com/questions/572404/error-running-make-array-type-has-incomplete-element-type might have Meta Discuss the workings and policies of this site About Us Learn more about Stack Overflow the company Business Learn more about hiring developers or posting ads with us Ask Ubuntu Questions Tags Users Badges Unanswered Ask Question _ Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join has incomplete them; it only takes a minute: Sign up Here's how it works: Anybody can ask a question Anybody can answer The best answers are voted up and rise to the top Error running make - array type has incomplete element type up vote 0 down vote favorite I am trying to install libbow library. When i has incomplete element run make file the following error is generated gcc -c -Ibow -I. -I./argp -DHAVE_LIBNSL=1 -DHAVE_STRERROR=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_RANDOM=1 -DHAVE_SRANDOM=1 -DHAVE_SETENV=1 -DHAVE_STRCHR=1 -DHAVE_STRRCHR=1 -DHAVE_ALLOCA_H=1 -g -O -Wall -Wimplicit -o array.o array.c In file included from array.c:22: ./bow/libbow.h:2128: error: array type has incomplete element type make: *** [array.o] Error 1 The Source of libbow is :http://www.cs.cmu.edu/~mccallum/bow/src/ (The latest version) Search results showed it as a compiler problem. How to resolve this? Or is there any other source for libbow? gcc make makefile share|improve this question asked Jan 11 '15 at 7:58 DDR 1013 Which version of gcc are you using? –ztik Jan 15 '15 at 9:38 add a comment| 1 Answer 1 active oldest votes up vote 0 down vote The error points line 2128 of bow/libbow.h extern struct argp_child bow_argp_children[]; It means that struct argp_child is not defined. I noticed that in line 1346 there is a forward declaration of the structure. struct argp_child; /* forward declare this type */ The full declaration of t