简体   繁体   中英

error: subscripted value is neither array nor pointer nor vector in C

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?

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 eg dynamic memory for 2D char array for examples.)

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;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM