本文へスキップ
BecomeCoder

C言語のエラー · エラー8

makes integer from pointer without a cast ― ポインタを整数に代入した

ポインタ型の値を、キャストなしで整数型の変数に代入すると出ます。ポインタと数値を混同したときに起こりがちです。

出るコード

int x;
char *name = "Aoi";
x = name;   // char* を int に代入

エラーメッセージ

warning: assignment to 'int' from 'char *' makes integer from pointer without a cast [-Wint-conversion]

直し方

ポインタはポインタ型の変数に代入します(char *p = name;)。アドレス値そのものが欲しいなら (intptr_t)name のように明示的にキャストします。