C语言中关于malloc(0)问题

首先来解释malloc(0)的问题,这个语法是对的,并且确实也分配了内存,可是内存空间是0,就是说返回给你的指针是不能用的,感受奇怪吧?可是从操做系统的原理来解释就不奇怪了,这要涉及操做系统维护内存的方法来讲了,在内存管理中,内存被分为2部分,栈和堆,栈有本身的机器指令,是一个先进后出的数据结构,我就在这里再也不过多解释了,malloc分配的内存是堆内存,因为堆没有本身的机器指令,因此要有系统本身
相关文章
相关标签/搜索