网上总结到的信息:
(1) 静态分派:是在栈上分配,是由用户自己申请,是由操作系统自己释放的
动态分配:是由编译器分配,操作系统没有提供这种机制,所以自己申请,必须自己删除!(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");
}说明:即使用malloc分配了10个int大小的空间,也可以动态的给第11个int赋值,实现内存的动态扩展,用静态内存分配int num[10]将不能完成。
原文:http://blog.csdn.net/xiqingnian/article/details/41130097