malloc函数申请内存空间。该怎么处理
malloc函数申请内存空间。动态申请的空间大小是看 内存?内存有多大就能申请多大的空间?1、看硬件的什么部件,
malloc函数申请内存空间。
动态申请的空间大小是看 内存?
内存有多大就能申请多大的空间?
1、看硬件的什么部件,硬件的物理内存大小?
2、 我在一个函数里申请4196字节的动态指针就死机了。请问这个是谁来控制的,大小又是谁来控制的?一个函数可以申请多大的动态指针空间?
[解决办法]
动态申请的空间大小和两个因素相关,第一是虚拟存储的最大空间,32位系统是4g;第二是跟当时你的计算机中内存消耗情况和内存碎片的情况相关。
申请4196字节的内存绝对不会造成死机,可能是你指针使用错误造成的。
[解决办法]对的,主要是由闲置的内存大小所决定的。可能是因为你申请的空间超过你的设备闲置内存容量了。
[解决办法]这个东西要从系统和进程上去看的.
就当下常见的x64的windows来看.
系统可以用的内存是 2的64次方字节,但是有一半的内存地址给系统本身用掉了,最低的一小部分用作开发测试用了.比如 0x0000000000000000 地址就不可以写,也不能读
而进程之间,内存是隔开的.
对于一个x64的进程而言,可以申请的内存大约是2的63次方字节.
但是malloc出来的内存真的就实实在在的分配了么?当然不是,只有在这段内存真正被使用时才会真正进入ram.而且是通过内存页的方式加载的.
如果是其它系统的情况,就要看其具体的系统来定了.
如果是祼系统的,那就要看你的malloc函数是如何实现的了.
[解决办法]那就难说了,嵌入式系统的内存分配我不太清楚,系统提供的内存分配策略需要你自己研究。
[解决办法]