C++深度解析 C++中的新成员---new,delete,命名空间namespace(9)
参考:【C++ Primer Plus(第六版)4.7 指针和自由存储空间 4.8 指针、数组和指针算术】
C++动态内存分配
关键字new: 进行动态内存分配申请(基于类型进行的)
关键字delete:用于内存释放
变量的申请:
Type* pointer = new Type; //从堆空间申请Type类型的变量
// ......
delete pointer; //释放指针所指向那个元素的动态内存空间
数组的申请:
Type* pointer = new Type[N];
// ......
delete[] pointer; //将整个数组空间释放
示例程序:(动态内存分配)
#include <stdio.h>
int main()
{
//定义一个指针,指向一个int类型的变量
//并且向堆空间里面申请一个int类型变量,将p指向该内存地址
//p指向4个字节的堆空间
int *p = new int;
*p = 5;
*p = *p + 10;
printf("p = %p\n", p);
printf("*p = %d\n", *p); //15
//释放p所指向的堆空间
delete p;