Из документации: inet_ntoa () возвращает строку точек и чисел в статическом буфере, который перезаписывается при каждом вызове функции.
Итак, в вашем случае второй вызов inet_ntoa дает вам новую строку, но в том же буфере, поэтому dst_addr указывает на то же самое, что и src_addr, которые теперь оба указывают на новую строку назначения.