使用new来分配内存
程序员告诉new,需要为哪种数据类型分配内存,new将找到一个长度正确的内存块,并返回内存块的地址。这是在程序运行阶段分配的内存。
#include<iostream>
int main()
{
int *p = new int(6);//初始化为6
std::cout << "value of p = " << *p << std::endl;
delete p;//释放内存
int *p1 = new int[5];
for(int i = 0;i < 5;i++)
p1[i] = i;
for(int j = 0;j < 5;j++)
std::cout << p1[j] << std::endl;
delete [] p1;
return 0;
}
注意:
- 不要使用delete来释放不是new分配的内存
- 不要使用delete释放同一个内存块两次
- 如果使用new[]为数组分配内存,则应使用delete[]来释放
- 如果使用new[]为一个实体分配内存,则应使用delete(没有方括号)来释放
- 对空指针使用delete是安全