假设有一个如下的API:
void myAPI(int8** ptr)
如果我要将结构的指针传递给此函数,则这是我的代码:
typedef myStruct {
int a;
};
myStruct *ptr = NULL;
memset(ptr, 0, sizeof(myStruct));
myAPI((int8**)&ptr);
我的问题是,如果我现在不使用
ptr
,则该怎么办?myStruct myStruct_info;
memset(&myStruct_info, 0, sizeof(myStruct));
我还会做
myAPI((int8**)&myStruct_info)
吗? 最佳答案
Would I also be doing myAPI((int8**)&myStruct_info)?
简短的回答是没有你不能。
&myStruct_info
是您的myStruct_info
变量的地址。myAPI函数的参数需要指向变量的指针的地址。
如果您说
int8 ** a = (int8**)&myStruct_info;
,则:a - holds the address of myStruct_info
*a - the value of myStruct_info
和
**a - means that you take the value stored in myStruct_info and use it as a pointer - REALLY BAD -
关于c - 在C中将双指针作为参数传递,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50339581/