ポインタを左辺値として返す関数を使用できないのはなぜですか?
たとえば、これは機能します
int* function()
{
int* x;
return x;
}
int main()
{
int* x = function();
x = new int(9);
}
しかし、これではありません
int* function()
{
int* x;
return x;
}
int main()
{
int* x;
function() = x;
}
ポインター変数を左辺値として使用できますが、ポインターを左辺値として返す関数を使用できないのはなぜですか?
また、関数がポインターではなく参照を返す場合、それは有効な左辺値になります。