Re: [請益] 指標的問題
※ 引述《StubbornLin (Victor)》之銘言:
: 不會
: 它只會去找出那個位置的那塊記憶體
: 把東西放進去
: 講難聽一點XD
: 如果個指標的位置不是你配置的記憶體
: 是亂七八糟的數字,這就有點像強暴一樣
: 你硬是把資料塞到指向的那塊空間
: 而指標沒有初始化,或是指標是亂七八糟的數字
: 程式通常會當掉
: 因為你違規存取記憶體
: 你想放東西進去,那個指標指向的位置必須是有效的
: 它只會乖乖的照做,放東西進去
: 不會幫你allocate一塊記憶體出來給你
: 至於需不需要free or delete,就要看那個指標是不是malloc或是new出來的
: 是的話才需要,如果只是指向區域變數的指標就不用
有點好奇要怎確定指標的位置是有效的?
void f( object * p )
{
object o;
* p = o;
}
object * p = new object; //alloc memory
f( p ); // 讓 f 蓋過去
※
不過如果是只能看到function prototype,例如用別人的library,
void f( object * p );
object * p;
f( p );
一般人應該會這樣寫,這不就危險了?
※
只是有點好奇,這樣的寫法要用在什麼情況?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.64.118.175
討論串 (同標題文章)