私は以下のコードに小さな問題があります。これはcharとintの2つの配列を読み込む簡単なプログラムです。次に、すべてのコンテンツを別の文字列に格納し、それを出力します。エラー:変数 'string'の周りのスタックが壊れていました
#include <stdio.h>
#include <string.h>
int main()
{
char string [50];
char first [11];
char last [16];
int age = 0;
printf("Please type in your first name: ");
scanf("%s", first);
printf("Please type in your last name: ");
scanf("%s", last);
printf("Please type in your age: ");
scanf("%d", &age);
sprintf(string, "Your name is %s %s and you are %d years old.", first, last, age);
puts(string);
getchar();
getchar();
return 0;
}
は今、プログラムは正常に実行されているが、私はそれを閉じたときに、私は次のエラーを取得する: ランタイムチェックの失敗#2 - 変数「文字列」を中心にスタックが壊れていました。 これはちょっと混乱していて、どこに問題があるのかわかりません。私は のアドバイスに感謝します。
C99(またはその一部を保証している)がある場合、代わりにこの種の問題が発生しないようにするには、snprintfを使用する必要があります。 –