栈溢出实际上是一个保护机制,使用gcc来检测缓冲区溢出攻击。 输入的字符串大于边界导致腐败的gcc内置保护金丝雀变量,SIGABRT终止程序。 您可以禁用此保护使用gcc选项 -fno-stack-protector 而编译。 在这种情况下,你会得到一个分割的错,如果你试图访问非法内存位置。当然你也可以检测溢出的角度说,例如使用Valgrind的。