Каждый раз, когда я пытаюсь скомпилировать свой код, я получаю ошибку:
cannot convert parameter 1 from 'int *' to 'int *&'
тестовый код похож на это:
void set (int *&val){
*val = 10;
}
int main(){
int myVal;
int *pMyVal = new int;
set(&myVal); // <- this causes trouble
set(pMyVal); // <- however, this doesn't
}
я хотел бы вызвать ту функцию в единственном снимке, не создавая указатель где-нибудь только для передачи его. И поскольку указатели не имеют конструкторов, что-то вроде этого не может быть сделано: набор (интервал* (&myVal));
там какой-либо другой способ передать указатель ссылкой, не будучи должен создать временную переменную?
Редактирование: По тому, как я знаю, почему коду не удается скомпилировать (я просто передаю адрес, который является возможно интервалом и не фактическим указателем). Вопрос состоит в том, как еще может это быть сделанным.