起因:
是因为看我一哥们代码的时候,就报错 segmentation fault
查看一下相关百度资料,即为内存相关问题。
解决
逐一排查,手工端点(别问)。。
即,排查到一句即,输用 %s
去输出一个int类型。
故将其换位 %d
解决了问题。
分析
即问题,在于使用 %s
输出字符串时,因为在c语言内,字符串默认是以 \0
结尾的。故使用 %s
时,输出到\0
即会自动终止。
而输出int类型时,则会读取其地址值之后四个字节内容,进行输入。
而使用%s
输出int类型,并没有读取到\0
故无法终止,也不会仅仅读取四字节,即造成内存越界。