2014-03-31 71 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); 

然而,刚读函数文档。如果令人难以置信的是它需要如此深的指针链来修改单个值;必须是更复杂的东西。