>>156
文字列pが "12345" だとして考えてみ?
len=5 だろ?

*(p + (len - i));

これって i=0 の時 *(p + (5 - 0)) => *(p + 5) ってことになる

ゼロベースだからインデックス5にはNULL文字'\0'が入っている
それを*r にコピーしている
つまりコピーされるのは常に長さ0の文字列
そりゃ出力したってなにも表示されないさ

あとlen / 2はおかしいだろ
練習するならマルチバイトはまず置いておいてシングルバイト文字のみ扱え