在dev环境下,用malloc只申请了了5个char字符的空间,为什么存入的个数超过了5个

图片说明
在dev环境下,用malloc只申请了了5个char字符的空间,为什么存入的个数超过了5个

可以看一点内存方面的知识啦,这个是很简单的程序溢出问题,
简单来说,你申请的内存可以放5个char,超出的部分就挨着放在后面了,但超出的部分你没有申请,所以理论上你不能使用,有可能注意是有可能引发程序出错。
正如楼上所说,程序很简单,仅仅溢出但没有导致程序崩溃。
但如果程序比较复杂,溢出有可能会意外的修改其他变量的值,或者直接修改你没有权限修改的值造成程序崩溃。崩溃的话还可以定位到溢出的位置,意外修改其他变量则不太容易发现,为了减少这种隐晦的不易复现的bug,应避免内存溢出。
可以再学习学习内存泄露,很有用的。

程序简单,溢出没导致异常而已,
实际有问题的,gets函数本身的问题