У меня есть вопрос о следующем коде:Магазин
//Definition of base used in ptr
void *base;
int query(Win *ptr, void *baseptr)
{
*(void**) baseptr = ptr->base;
...
}
Могу ли я просто изменить заявление к следующему?
baseptr = ptr->base;
Почему бросить baseptr
в void **
?
Вероятно, существует определенный интерфейс, который требуется для выполнения запроса(). Можем ли мы получить информацию о том, как используется 'query()'? –
Нет, вы не можете, так как '* (void **) baseptr' - это не то же самое, что' baseptr'. Первые разыменования 'baseptr' и сохраняют значение в памяти, на которую указывает. Последнее не разыскивает его, вместо этого оно сохраняет значение (которое является указателем) в 'baseptr'. –
@BillLynch пример, заданный timrau, - это именно то, как он используется в коде. Спасибо за помощь. – Lemon