内存中有数据,我想用它的指针读取它。是否允许通过将此指针传递给function来修改指向char,int等的void指针。 我的意思是:
struct DataContainer {
char* one;
int* two;
};
void GetDataPointer(char var, void* data_p)
{
switch(var) {
case 1:
data_p = (void*)DataContainer.one;
break;
case 2:
data_p = (void*)DataContainer.two;
break;
}
void main(void)
{
char* example;
GetDataPointer(1, (void*)example);
}
在功能GetDataPointer
中,我可以看到data_p
获取与Datacontainer.one相同的地址,但main()
example
的地址保持不变。
答案 0 :(得分:0)
您需要将指针传递给指针。
GetDataPointer(1, (char **) &example);
在函数声明中,您将把它放在:
char **data_p
当你设置指针的值时:
*data_p = something;