2013-03-28 40 views
-2

下面的代碼是相同的函數中:這個指針是否安全地聲明?

File *curr = dir -> head_file; 
... 
f -> next = curr; 

f -> next實際上指向dir -> head_file或局部變量curr?如同一樣,一旦這個函數退出,當curr消失或指向別的東西時會出現問題嗎?

+2

您清楚C賦值的工作原理嗎? – nneonneo

+0

@nneonneo我對C賦值基本沒問題,但是我不清楚改變'curr'是否會影響'f - > next'。不過,我現在明白了。謝謝! – sbl03

回答

0

f->next是存儲在curr中的值的副本。如果curr發生變化,那麼不會影響f->next如果沒有分配給後者。 currf->next都沒有指向dir -> head_file;他們都是副本。

0
f -> next = curr; 

使f->next指向哪裏curr點,在這種情況下,它是dir -> head_file,它不破壞指針curr或更改curr指向方向。

0

這是安全的,它指向dir->header_file

請注意類型和注意&curr有一個類型File **這是不同的。獲取您使用的變量的地址&&curr