【C言語】cannot convert to a pointer type

C言語で「cannot convert to a pointer type」というエラーメッセージが表示された場合、それはその値をポインタ型に変換できないことを意味します。

例えば、次のようなコードでこのエラーが発生する可能性があります。

#include <stdio.h>

int main(void) {
  int x = 5;
  int *p = x; // エラーが発生する行
  printf("p = %d\n", *p);
  return 0;
}

この例では、int型の変数xがint型のポインタpに代入されていますが、型の一致しない変数を代入することはできません。このような場合、コンパイラは「cannot convert to a pointer type」というエラーメッセージを出力します。

このような場合、型が一致するようにプログラムを修正することで、このエラーは解消されます。

#include <stdio.h>

int main(void) {
  int x = 5;
  int *p = &x; // 修正後
  printf("p = %d\n", *p);
  return 0;
}

この例では、int型の変数xのアドレスをint型のポインタpに代入するように修正されました。これにより、型が一致するようになり、エラーが解消されます。

コメント

タイトルとURLをコピーしました