Вы берете временный адрес (rvalue
), что невозможно сделать. Это все равно что пытаться сделать:
&(2+2)
// or
&4
// or
&(my_ptr + 4)
Вы можете создать временный файл самостоятельно (таким образом, lvalue
), используя один из двух методов:
AnotherType **my_var_ptr = &my_var;
SetElement **set_element_ptr = (SetElement *)my_var_ptr;
// or
SetElement *set_element = (SetElement)my_var;
SetElement **set_element_ptr = &set_element;
Или вы можете просто разыграть другим способом ( решение ):
SetElement **set_element_ptr = (SetElement *)&my_var;
Это работает, потому что вы берете адрес my_var
(lvalue
), а не (SetElement)my_var
(rvalue
).