小编Wil*_*iam的帖子

C++交换两个void*的内容

是否可以交换两个void指针的内容?我尝试通过解除引用两个指针来交换值:

void* a = (void*)50;
void* b = (void*)90;
*a = *b;
Run Code Online (Sandbox Code Playgroud)

但是,最后一行会抛出错误,因为无法取消引用void指针.

我认为可以通过首先将b的值转换为int然后将其强制转换为void*来实现:

void* a = (void*)50;
void* b = (void*)90;

int value = (int)b;
a = (void*)value; //a now equals b
Run Code Online (Sandbox Code Playgroud)

不幸的是,这需要我们知道a和b是什么类型的"假设"(我不知道这样的描述是否正确),在这种情况下,它们是整数.是否可以在不知道其"原始"类型的情况下交换两个void指针的内容?

谢谢.

c++ pointers casting void-pointers

0
推荐指数
1
解决办法
152
查看次数

标签 统计

c++ ×1

casting ×1

pointers ×1

void-pointers ×1