キーボードから文字列を読み取り、に格納したいbuf。配列を設定しましたchar buf[6]。この配列は最大で 5 文字と\0.
次に123 456 789、11 文字と を入力する\0と、プログラムは実行できますが、より長い文字列を入力する123 456 789 123 456 789と、実行時にクラッシュします。これら 2 つの入力も の範囲外ですがbuf、一方は実行できますが、もう一方はクラッシュしますか?
これが私のコードです:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void read_str();
int main(){
read_str();
system("pause");
return 0;
}
void read_str(){
char buf[6] = {};
scanf("%[^\n]",buf);
printf("%d\n",strlen(buf));
printf("%s\n",buf);
}