我的f407 RAM只有128K,但我定义了一个128K的大数组,为什么还能编译通过,运行也不报错,这块内存被分配到哪了啊
char membuf[128*1024] = {0};
查看更多
查看map文件看看地址的分配,或许被编译器优化了
bss段,或者说是zi段。能编译通过,可能是你没访问过,被优化了。看一下链接脚本,看看给RAM分了多大空间。另外,用的什么编译器?membuf调用过么?
看map文件或者汇编文件,可以看的出来。
未初始化的全局数组分布在BSS段;已初始化但初始为0的全局数组,也是分布在BSS段;已初始化且初始化的值不是0的全局数组,分布在DATA段。
你可以试下,将这个数组初始化为非0。
回到 顶部
发布 问题
分享 好友
手机 浏览
投诉 建议
回到 底部