作者Hazukashiine (私は幸せです)
看板C_and_CPP
標題Re: C/C++ 語言新手十三誡 -- Ver. 2016
時間Thu Jun 9 14:14:08 2016
※ 引述《wtchen (沒有存在感的人)》之銘言:
: ______________
: 1. int* ptr; ptr -> |__未知的空間__|
: ______________
: 2. 呼叫函式 newArray ptr -> |__未知的空間__| <- local
: ______________
: 3. malloc 取得合法空間 ptr -> |__未知的空間__|
: ______________
: |___合法空間___| <- local
: ______________
: 4. 離開函式 ptr -> |__未知的空間__|
希望這張圖可以更清楚描繪出更多細節,並移除合法和未知的空間等有歧義的用詞。
┌────┐ ┌────┐ ┌────┐ ┌────┐
Heap │ │ │ │ │ 新配置 │ │ 已泄漏 │
│ │ │ │ │ 的空間 <─┐ │ 的空間 │
│ │ │ │ │(allocd)│ │ │(leaked)│
│ │ │ │ ├────┤ │ ├────┤
│ │ │ │ │ : │ │ │ │
│ │ │ │ │ : │ │ │ : │
│ │ ├────┤ ├────┤ │ │ : │
│ │ │ local ├─┐ │ local ├─┘ │ │
├────┤ ├────┤ │ ├────┤ ├────┤
Stack │ ptr ├─┐ │ ptr ├─┤ │ ptr ├─┐ │ ptr ├─┐
└────┘ ╧ └────┘ ╧ └────┘ ╧ └────┘ ╧
未初始化 函式呼叫 配置空間 函式返回
int *ptr; local = ptr; local = malloc();
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.241.157.183
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1465452851.A.B5D.html
推 wtchen: 感謝,想一下怎麼加進去。 06/09 14:50
※ 編輯: Hazukashiine (111.241.157.183), 06/09/2016 14:52:53
推 wtchen: 改好了,謝謝 06/09 14:53
→ Hazukashiine: 更新了下方的解釋文字 :) 06/10 00:50
→ Hazukashiine: 讓他看起來比較符合美感(笑 06/10 00:51
→ wtchen: 改好了,謝謝 06/10 00:53