如何交换void指针的内容?

Fur*_*qan 2 c++

我正在创建一个函数,它接收任何数据类型的数组并反转它的元素.

void f(void *p, int size)
{
  for(int i=0; i<=size/2; i++)
  {
    swap(p+i, p+size-i-1);
  }
}
Run Code Online (Sandbox Code Playgroud)

但问题是如何实现交换函数交换其内容而不取消引用void指针?

Mar*_*ork 6

或者你可以使用std :: reverse函数

int main()
{
    int  data[] = { 1, 2, 3, 4, 5, 6, 7};
    std::reverse(data, data + sizeof(data)/sizeof(data[0]));

}
Run Code Online (Sandbox Code Playgroud)