我希望在不实际使用 memcpy 的情况下完成与 memcpy 相同的结果。
这是我想从 memcpy 更改的代码。
memcpy((char *) &(serv_addr.sin_addr.s_addr),
(char *)(server->h_addr), server->h_length);
有没有办法做到这一点?
memcpy
您可以使用 for 循环轻松重新编码。如果编译器提供内在函数,您可以使用它们。海合会有__builtin_memcpy
. 但最重要的是,您这样做可能是错误的,memcpy
到处都在使用并且不能出错。
只是一个疯狂的猜测:您在网络的某个地方找到了这段代码,并且不小心将参数反转为memcpy()
调用:
memcpy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr,
server->h_length);
只需将它们切换回来,您的运行时错误就会消失。