#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
char *s;
printf("enter the string : ");
scanf("%s", s);
printf("you entered %s\n", s);
return 0;
}
当我提供长度小于或等于 17 个字符的小输入(例如“aaaaaaaaaaaaaaaaa”)时,程序可以正常工作,但是如果提供更大长度的输入,则会出现运行时错误,显示“main.c 已意外停止工作”。这是我的编译器(codeblocks)或我的计算机(Windows 7)存在问题吗?还是与 C 的输入缓冲区有关?
s
并不指向一个太小的缓冲区;它根本就没有指向任何地方。) - Steve Summit