Re: [問題] C/C++程式區塊中變數宣告與消滅
看板Programming作者charleshu (Analog Engineer)時間14年前 (2010/04/26 11:30)推噓1(1推 0噓 2→)留言3則, 2人參與討論串2/2 (看更多)
※ 引述《magica (似我非我)》之銘言:
: 在C/C++中所有的程式區塊(就是{}括弧)中的變數在離開區塊時會消滅
: for ex.
: 我的問題是, 如果我在{}中使用pointer..
: for ex
: #include <iostream>
: using namespace std;
: int main()
: {
: {
: int *i=new int(0);
宣告了一個auto變數i,並從heap分配了一個int大小的記憶體後將其位置設定至i中.
: cout << *i;
: }
離開了i的scope,回收儲存i的記憶體,但沒有回收之前new來的記憶體. Memory leakage!!!!!!
: {
: int *i=new int(1);
再宣告了一個新的auto變數i,細節同上.
: cout << *i;
又leakage了一塊記憶體.
: }
: return 0;
: }
建議你針對 C++的記憶體管理, auto 變數與heap部分多加研究.
觀念上的問題不容易幾句話就讓你明白,而且已經有很多好的教科書如C++ primer...等聖
經本. 在此就不再班門弄斧說明那些細節了.
--
Do not depend on others without effort...
當我年輕時,請教別人問題時常聽到上面那句話. 當時心裏偶而會有些小小抱怨.
當時間過去,我偶而會想到上面那句話, 心中十分感謝當初告訴我那句話的人.
當發現問題時,最有價值的不是問題的答案,
而是找到解決的方向,並在努力的過程裡具備解決問題的能力.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.74.232.239
推
04/26 13:46, , 1F
04/26 13:46, 1F
→
04/26 13:47, , 2F
04/26 13:47, 2F
→
04/26 13:55, , 3F
04/26 13:55, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):