中級 › error: invalid conversion from 'int*' to 'int' の原因と直し方 › パターン1
error: invalid conversion from 'int*' to 'int' の原因と直し方
アドレス演算子&で得たポインタを、参照や普通の変数と混同して代入しようとしたときに出るエラーです。
1 #include <iostream> 2 int main() { 3 int x = 5; 4 int ref = __x; ^ 5 std::cout << ref << std::endl; 6 return 0; 7 }
main.cpp:4:15: error: invalid conversion from 'int*' to 'int' [-fpermissive]
空欄を埋めてコンパイル・実行を通す
&xはint*型(xのアドレス)です。int型の変数にそのまま代入することはできません。ここでは単に値をコピーしたいだけなので&は不要です。
次の問題