cにダンプされた分割エラーコア[閉じる]

cにダンプされた分割エラーコア[閉じる]

このコードを実行するとエラーが発生します。分割エラー(コアダンプ)

#include<stdio.h>
int main(int argc, char *argv[]) {
  int i = 0;
  printf("\n cmdline arg counts = %s ", argc);
  printf("\n exec name = %s ", argv[0]);
  for (i=1; i<argc; i++) {
    printf("\n arg %d = %s" , i, argv[i]);
  }
  return 0;
}

この問題を解決する方法を教えてください。私は主張を伝えています。

答え1

あなたの問題は次のとおりです

printf("\ncmdline arg counts = %s ",argc );

%s(%dではなく)形式を使用してargcを印刷するので、argcを文字列へのポインタとして解釈します。これにより、printfは保護されたスペースから文字列を読み取ろうとします。行を次に変更します。

printf("\ncmdline arg counts = %d ",argc );

大丈夫です。

関連情報