[英]Questions about pointers
我有一個將***int
作為參數的函數的 API。
void APIfunc(int ***in_variable)
我寫了一個新函數,我必須使用這個APIfunc
。
我想在我的函數中使用本地int
(而不是int***
),但我想將它傳遞給APIfunc
(獲取int****
)。
我該怎么做?
僅依靠語法,
int foo;
int *bar = &foo;
int **bar2 = &bar;
APIfunc(&bar2);
但是,只需閱讀功能文檔。 令人難以置信的是,僅僅修改單個值就需要如此深的指針鏈; 一定是更復雜的東西。
調用函數的方式取決於它是分配內存還是只訪問內存。
案例:它分配內存
既然它似乎沒有關於對象大小、對象類型、對象數量的參數,它是否假設它們? 在這種情況下,您需要這樣調用它:
int** in_variable;
APIfunc(&in_variable);
案例:它只是訪問內存
您必須在某處分配數據。 你需要這樣稱呼它:
int*** in_variable;
// Allocate memory and fill up the data
// ...
// Call the function
APIfunc(in_variable);
希望能為你澄清一些事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.