Reputation: 5087
the_project.c:73:22: error: subscripted value is neither array nor pointer nor vector
it gives the error above and the line 73 is the following.
customer_table[my_id][3] = worker_no;
I declared the array global as follows
int *customer_table; //All the info about the customer
This line of code is in a function not in main. And I allocate memory for this global array in the main. What may this cause this problem?
Upvotes: 2
Views: 46959
Reputation: 206709
You're declaring a pointer-to-int
. So cutomer_table[x]
is an int, not a pointer. If you need a two-dimensional, dynamically allocated array, you'll need a:
int **customer_table;
and you'll need to be very careful with the allocation.
(See e.g. dynamic memory for 2D char array for examples.)
Upvotes: 4
Reputation: 27233
The problem is that customer_table[my_id]
is not a pointer or array and hence you cannot use []
on it.
Note that the first dereference using []
is OK since customer_table
is a pointer. Once you apply the first []
it becomes an int
, though.
Perhaps what you really want to use is
int **customer_table;
Upvotes: 0