C++指针与内存泄露
基本知識:
指針是一個變量,存儲某個變量的地址(例:0x00aabbcc);
*運算為間接值(indirect)運算符,或解除引用(dereferencing)運算符;
?
指針初始化:
使用指針(*運算符取值)之前,必須先初始化指針(讓指針指向一個變量)。
創建指針時,計算機會分配內存來存儲變量的地址,但不會分配內存來存儲變量的值。
int * pTemp; // 空指針,未賦值 *pTemp指向未知位置
*pTemp =?ImmediateValue;?// 會發生未知錯誤
指針賦值:
pTemp = &variable; // 指針指向一個變量
pTemp = 0x00aabbcc; // 指針指向一個地址
typeName?* pointer_name = new?typeName; //?
//?int * pTemp = new int;
其中第一種(常規變量)和第二種賦值分配在棧(stack)中,第三種(new運算符)分配在堆(heap)中
清理內存:
new和delete應該成對出現,由new申請的內存必須由delete釋放,否則將會發生內存泄漏(memory leak),被分配的內存無法再被使用。
內存泄露產生原因:沒有釋放(在堆中申請的)內存。
對空指針使用delete是安全的,但不要對已經釋放的內存塊,因為會產生不確定的后果。
?
其他問題:
指針的大小;
指針的運算(加減除);
轉載于:https://www.cnblogs.com/GregoRay/p/5280292.html
總結
以上是生活随笔為你收集整理的C++指针与内存泄露的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp.net如何读取Excel文件
- 下一篇: 网易2016研发工程师编程题:扫描透镜