我有一個函數的API獲取***int
作爲參數。關於指針的問題
void APIfunc(int ***in_variable)
我寫了一個新函數,我必須用這個APIfunc
。
我想用我的函數的局部int
(而不是int***
),但我想它傳遞給APIfunc
(即獲得int****
)。
我該怎麼辦?
我有一個函數的API獲取***int
作爲參數。關於指針的問題
void APIfunc(int ***in_variable)
我寫了一個新函數,我必須用這個APIfunc
。
我想用我的函數的局部int
(而不是int***
),但我想它傳遞給APIfunc
(即獲得int****
)。
我該怎麼辦?
你調用函數的方式取決於它是分配內存還是隻訪問內存。
案例:分配內存
因爲它似乎不具備有關對象的大小,對象的類型,對象數量的參數,它承擔呢?在這種情況下,你需要這樣來調用它:
int** in_variable;
APIfunc(&in_variable);
案例:它只是訪問您一定是什麼地方分配數據的內存
。你需要這樣稱呼它:
int*** in_variable;
// Allocate memory and fill up the data
// ...
// Call the function
APIfunc(in_variable);
希望澄清一些事情給你。
只在語法依託,
int foo;
int *bar = &foo;
int **bar2 = &bar;
APIfunc(&bar2);
然而,剛讀函數文檔。如果令人難以置信的是它需要如此深的指針鏈來修改單個值;必須是更復雜的東西。
你確定這是指針指向int指針的指針,因爲你希望使用本地int作爲參數建議嗎?或者可能是某事。像ponter int [] []? – Drunix
太模糊,沒有足夠的信息來說明你在做什麼。 –