中級 › error: invalid conversion from 'int*' to 'int' の原因と直し方 › パターン3
error: invalid conversion from 'int*' to 'int' の原因と直し方
アドレス演算子&で得たポインタを、参照や普通の変数と混同して代入しようとしたときに出るエラーです。
1 #include <iostream> 2 int main() { 3 int total = 42; 4 int value = __total; ^ 5 std::cout << value << std::endl; 6 return 0; 7 }
main.cpp:4:17: error: invalid conversion from 'int*' to 'int' [-fpermissive]
空欄を埋めてコンパイル・実行を通す
g++は「possible fix: dereference with '*'」とも提案しますが、それは*totalにすればポインタの中身が読めるという意味で、今回のように単純代入したい場合は&自体を消すのが正しい直し方です。
次の問題