У меня есть два указателя void внутри структур.Назначить значение по значению указателя из указателя void
typedef struct DATA_T {
BOOLEAN trigger;
void *var_p;
void *data_p;
} DATA_T;
typedef struct ITEM_T {
DATA_T job_data[100];
BOOLEAN job_active;
BOOLEAN job_send;
} ITEM_T;
ITEM_T foo[100];
Я назначил два указателя пустоты на разные адреса. Теперь у меня есть значение на одном указателе и вы хотите установить другой указатель = на это значение.
foo[i].job_data[j]->data_p = *(int*)foo[i].job_data[j].var_p;
Эта ошибка затем размещена:
error C2232: '->data_p' : left operand has 'struct' type, use '.'
Я не верю, что я хочу .
вместо ->
здесь, потому что мне нужно разыменования указателя data_p
.
Благодарим за помощь.
Вы говорите, что хотите «разыменовать data_p», однако невозможно разыменовать 'void *'. (Если бы это было возможно, вы бы сделали это, написав '* (foo [i] .job.data [j] .data_p)', где круглые скобки являются избыточными, но я добавил их для ясности) –