如果数组的大小比较大(大概10^6级别),则需要将其定义在主函数外面,主函数外大概有0.8GB空间。

DEV环境下数组容量最大值的确定是由运行时异常观测到的。

主函数内:

根据数组指针1FBD00h~2^21~520000*4B=2^21B=2MB,也就是说主函数内有2MB(520000个整型)空间可使用。

 

主函数外:

以上是数组中部分数据写入,然后重新测试了一下循环写入,发生运行时错误,原因请看下:

通过指针计算可得他的逻辑空间含有0.8G左右,通过指针可以判断他确实分配了空间。

通过数组容量计算数值相同:0.8G左右。

这么大的空间CPU附近的寄存器是不可能存储的了的,此处猜测使用了:链表结构的方法来节省空间,但是访问所有内容导致链表最终也无法维持,出错。另一种是确实分配了,但是在主存上,频繁的写入会导致IO繁忙,出于安全考虑,系统不允许,出错。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值