2014-03-31 74 views
-2

我有一個函數的API獲取***int作爲參數。關於指針的問題

void APIfunc(int ***in_variable) 

我寫了一個新函數,我必須用這個APIfunc

我想用我的函數的局部int(而不是int***),但我想它傳遞給APIfunc(即獲得int****)。

我該怎麼辦?

+0

你確定這是指針指向int指針的指針,因爲你希望使用本地int作爲參數建議嗎?或者可能是某事。像ponter int [] []? – Drunix

+0

太模糊,沒有足夠的信息來說明你在做什麼。 –

回答

0

你調用函數的方式取決於它是分配內存還是隻訪問內存。

案例:分配內存

因爲它似乎不具備有關對象的大小,對象的類型,對象數量的參數,它承擔呢?在這種情況下,你需要這樣來調用它:

int** in_variable; 
APIfunc(&in_variable); 

案例:它只是訪問您一定是什麼地方分配數據的內存

。你需要這樣稱呼它:

int*** in_variable; 
// Allocate memory and fill up the data 
// ... 

// Call the function 
APIfunc(in_variable); 

希望澄清一些事情給你。

0

只在語法依託,

int foo; 
int *bar = &foo; 
int **bar2 = &bar; 
APIfunc(&bar2); 

然而,剛讀函數文檔。如果令人難以置信的是它需要如此深的指針鏈來修改單個值;必須是更復雜的東西。