DEV环境下数组容量最大值的确定是由运行时异常观测到的。
主函数内:
根据数组指针1FBD00h~2^21~520000*4B=2^21B=2MB,也就是说主函数内有2MB(520000个整型)空间可使用。
主函数外:
以上是数组中部分数据写入,然后重新测试了一下循环写入,发生运行时错误,原因请看下:
通过指针计算可得他的逻辑空间含有0.8G左右,通过指针可以判断他确实分配了空间。
通过数组容量计算数值相同:0.8G左右。
这么大的空间CPU附近的寄存器是不可能存储的了的,此处猜测使用了:链表结构的方法来节省空间,但是访问所有内容导致链表最终也无法维持,出错。另一种是确实分配了,但是在主存上,频繁的写入会导致IO繁忙,出于安全考虑,系统不允许,出错。