任何动态分配的变量都不可能在编译期间定义,所以源程序中没有其名称。
当创建这些变量时,计算机用内存中相应的地址来标识他们,该地址被存储在指针中。
借助指针和Vc2008的动态内存管理工具,能使编写的程序具备这种灵活性。
1)堆,自由存储器,程序运行后未被使用的内存。
new可 在堆中为特定类型的新变量分配空间,返回分配变量的内存地址
delete释放new分配的内存
如:
double* pvalue=NULL;
pvalue=new double;//新变量分配空间,返回分配变量的内存地址,系统如果没有足够的内存空间,new运算符将抛出一个异常,从而使程序终止。
*pvalue=999.0;
或
double* pvalue=NULL;
pvalue=new double(999.0);
delete pvalue;//防止内存泄漏
pstr=NULL;
2)为数组动态分配内存
char* pstr=NULL;
pstr=new char[20];
delete [] pstr;//[]是为了指出要删除的是一个数组
pstr=NULL;
3)多维数组的动态分配
pbeans=new double [3][4];
delete [] pbeans;