-4

我希望在不实际使用 memcpy 的情况下完成与 memcpy 相同的结果。

这是我想从 memcpy 更改的代码。

memcpy((char *) &(serv_addr.sin_addr.s_addr), 
    (char *)(server->h_addr), server->h_length);

有没有办法做到这一点?

4

2 回答 2

2

memcpy您可以使用 for 循环轻松重新编码。如果编译器提供内在函数,您可以使用它们。海合会有__builtin_memcpy. 但最重要的是,您这样做可能是错误的,memcpy到处都在使用并且不能出错。

于 2012-09-27T18:32:41.723 回答
0

只是一个疯狂的猜测:您在网络的某个地方找到了这段代码,并且不小心将参数反转为memcpy()调用:

memcpy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, 
    server->h_length);

只需将它们切换回来,您的运行时错误就会消失。

于 2012-09-27T18:42:32.200 回答