码迷,mamicode.com
首页 > 其他好文 > 详细

malloc是怎么实现动态内存分配的

时间:2014-11-15 00:15:32      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:malloc   动态内存分配   

网上总结到的信息:

(1) 静态分派:是在栈上分配,是由用户自己申请,是由操作系统自己释放的

  动态分配:是由编译器分配,操作系统没有提供这种机制,所以自己申请,必须自己删除!
(2)你也要明白,栈的容量非常的小,而且特别贵,不能满足所有的内存申请,所以就要动态分配,
(3)动态分配是编译器自己完成的,跟操作系统没有关系

(4) 动态分配效率比较低,不过容量跟用户需求有关。

(5)C语言里面用malloc和free,C++里面用new 和delete。

(6)malloc要求穿进去一个分配内存大小的参数,还怎么动态呢?

看下面的例子:

#include <iostream>
#include <string>
#include <cstdlib>

 using namespace std;

void main()
{
	int* p;
	p=(int*)malloc(sizeof(int)*10);
	for(int i=0;i<11;i++)
	{
		*(p+i)=i;
	}
	for(int i=0;i<11;i++)
		cout<<*(p+i)<<"   ";
	system("pause");
}
bubuko.com,布布扣

说明:即使用malloc分配了10个int大小的空间,也可以动态的给第11个int赋值,实现内存的动态扩展,用静态内存分配int  num[10]将不能完成。

malloc是怎么实现动态内存分配的

标签:malloc   动态内存分配   

原文地址:http://blog.csdn.net/xiqingnian/article/details/41130097

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!