2017-01-13 80 views
1

找不到答案。當我對指針將指針傳遞到函數中

char **buffer; 

指針,我想將它傳遞給函數

void some_func(char **buffer) {} 

打完這個函數調用緩衝區將從這個功能包含數據,我應該怎麼稱呼這個功能嗎?

+2

根據函數的不同,返回一個新指針可能會更簡單或者更容易混淆 - 使得函數「char ** func(char **)'。 – nneonneo

+3

如果你只想修改'buffer'的內容,而不是指針本身,你可以調用:'some_func(buffer);' –

+0

目前還不清楚你想做什麼。當你第一次調用函數時,'buffer'是否會包含任何東西? –

回答

3
在你的例子

它是正確的,但事實是,你通過這個指針,指針

// initialize it 
char** buffer; 

void some_func(char ***buffer) {} // by reference 

和在函數調用:通過值,使得經指針傳遞它

some_funct(&buffer); 
2
some_func(&buffer); 

這就是您需要的呼叫。

,功能應該是...

void some_func(char ***buffer) {} 

爲了操縱緩衝...

*buffer = something;