找到一种方法来完成memcpy而不使用memcpy

时间:2012-09-27 18:27:22

标签: c++ linux

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

以下是我想要从memcpy改变的代码。

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

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:2)

您可以使用for循环轻松重新编码memcpy。如果编译器提供内在函数,则可以使用它们。 Gcc有__builtin_memcpy。但最重要的是你这样做可能是错的,memcpy在任何地方都使用,并且不会有错误。

答案 1 :(得分:0)

只是一个疯狂的猜测:您在网络上的某个地方找到了此代码,并且意外地将参数撤消到了memcpy()来电:

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

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