memcpyを実際に使用せずに、memcpyで発生するのと同じ結果を達成したいと思います。
これが私がmemcpyから変更したいコードです。
memcpy((char *) &(serv_addr.sin_addr.s_addr),
(char *)(server->h_addr), server->h_length);
これを行う方法はありますか?
memcpy
forループを使用して簡単に再コーディングできます。コンパイラが組み込み関数を提供している場合は、それらを使用できます。Gccには__builtin_memcpy
。しかし、最も重要なことは、おそらくそうするのは間違っていて、memcpy
どこでも使用されており、バグがないということです。
ただの大げさな推測:あなたはこのコードをウェブ上のどこかで見つけ、誤ってmemcpy()
呼び出しのパラメータを逆にしました:
memcpy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr,
server->h_length);
それらを元に戻すだけで、ランタイムエラーは消えます。