指针和动态内存分配和释放
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指针和动态内存分配和释放相关的知识,希望对你有一定的参考价值。
格式:
用法1:
指针变量名 = new T(初始化值); //申请 其中T是类型名,p是类型为 T* 的指针,会动态分配出一片大小为 sizeof(T) 字节的内存
delete 指针名; //释放
new运算符返回的是一个指向所分配类型变量(对象)的指针。
用法2: 对数组进行动态分配与释放的格式:
指针变量名 = new 类型名[长度]; //配出一片大小为 (长度 * sizeof(T))字节的内存
delete[] 指向该数组的指针变量名; //此处[]也是配对使用
用法1:
#include<bits/stdc++.h> using namespace std; int main() { int *p = new int (4); /* int *p; p = new int; //动态分配出sizeof(int) = 4个字节大小的内存空间,p可以读写这段内存空间 *p = 4; 等价int *p = new int (4); */ cout<<p<<endl; // 地址 cout<<*p<<endl;// *+地址 即值 delete p; //释放内存 return 0; }
输出结果:
用法2:
#include<bits/stdc++.h> using namespace std; int main() { int *p; p = new int [20]; p[0] = 66; cout<<p[0]<<endl; cout<<"--------"<<endl; delete[] p; p = NULL; return 0; }
以上是关于指针和动态内存分配和释放的主要内容,如果未能解决你的问题,请参考以下文章