OSはLinux、コンパイラはgcc。
struct sockaddr_in構造体を使用する前にmemset(3)でゼロクリアしてる
例をよくみかけますが、なぜゼロクリアしているのですか?

/* 例 */
struct sockaddr_in to;

memset(&to, 0, sizeof to); /* ゼロクリアしてるのはどうしてなぜ? */
to.sin_addr.s_addr = inet_addr(ip);
to.sin_family = AF_INET;
to.sin_port = htons(port);