【C言語】request for member ‘xxx’ in something not a structure or union

“request for member ‘xxx’ in something not a structure or union” というエラーメッセージは、プログラムが構造体または共用体のメンバーにアクセスしようとしているものが実際には構造体または共用体ではない場合に発生するものです。C 言語では、構造体または共用体のメンバーにアクセスするには、ドット(.)演算子を使用します。

例えば、以下のようなプログラムでこのエラーが発生する可能怟があります。

#include <stdio.h>

int main() {
  int num = 10;
  printf("%d\n", num.value); // エラー: request for member 'value' in something not a structure or union
  return 0;
}

上記のプログラムでは、num という整数型(int)の変数を宣言しています。そして、num の中身を表示するために printf 関数を使用しています。しかし、このプログラムでは、num.value という構文を使用して num のメンバーにアクセスしようとしています。しかし、整数型の変数には構造体または共用体のようなメンバーは存在しないため、エラーが発生しています。

このような場合、整数型の変数にアクセスするには、変数名を指定するだけでよいです。例えば、以下のように修正することができます。

#include <stdio.h>

int main() {
  int num = 10;
  printf("%d\n", num); // 正しく動作する
  return 0;
}

上記のように、変数名を指定するだけでプログラムが正しく動作するようになります。

コメント

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