void 函数如何得到 return 值? C++

how void function can be return value? c++

我不明白,void* 函数怎么可以有 return 值。下面的代码,它的工作。

void *TcpClient::receive(int size=512)
{
char *buffer = new char[size];

if (recv(_sockfd , buffer , sizeof(buffer) , 0) < 0)
{
    std::cerr << "recv failed";
}

return buffer;
}

函数returnsvoid*,即指向内存的指针,不是void