-4

memcpyを実際に使用せずに、memcpyで発生するのと同じ結果を達成したいと思います。

これが私がmemcpyから変更したいコードです。

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

これを行う方法はありますか?

4

2 に答える 2

2

memcpyforループを使用して簡単に再コーディングできます。コンパイラが組み込み関数を提供している場合は、それらを使用できます。Gccには__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 に答える