C++ 中的有关char型数组问题。有兴趣进来看一看吧

来源:百度知道 编辑:UC知道 时间:2024/06/18 05:27:40
小生我今天在写道题的时候,不小心数组溢出了。奇怪的是编译器没有报错,而且完整的输出了我输入的字符串。很好奇,于是继续研究发现了如下问题:
1------当对一个没有赋值的数组用strlen()求长度,结果要比定义数组时的长度大5个。
2------当我不断的溢出数组 输入时,发现在溢出1个,2个字符时,编译器不会报错,当溢出大于2个时,就会报错了。
-------------------------------
这两个问题小生我有点弄不大明白。希望感兴趣的积极发表意见,懂这个的不奢赐教,

当你申请空间时,内存管理是按页为单位的,内核是一页一页的分配内存空间的, 而不是你想要多少就分配多少.当你要少于一页的空间时,它也是分配一页的地址空间,其实整个页你都可以用的,当你再申请一些字节的时候,如果上次分配的页里还有空间,它会从那里拿来给你,这是内存管理的内容,有兴趣可以找点资料看看