【C言語】format string argument is not a string type

“format string argument is not a string type” というエラーメッセージは、C 言語の printf 関数が文字列型以外の引数を渡された場合に発生します。

例えば、次のようなコードを見てみましょう。

#include <stdio.h>

int main(void) {
  int x = 123;

  // 文字列型の引数を渡して printf 関数を呼び出すと、正常に動作します。
  printf("x = %d\n", x);

  // 整数型の引数を渡して printf 関数を呼び出すと、エラーが発生します。
  printf(123, x);

  return 0;
}

このコードでは、最初の printf 関数の呼び出しでは、文字列型の引数として “x = %d\n” を渡しています。そのため、この printf 関数は正常に動作します。

しかし、2番目の printf 関数の呼び出しでは、整数型の引数として 123 を渡しています。これは、printf 関数の仕様では、最初の引数は文字列型である必要があります。そのため、この printf 関数はエラーになります。

このように、C 言語では printf 関数に文字列型以外の引数が渡された場合、”format string argument is not a string type” というエラーメッセージが発生することになります。

コメント

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