Jeśli polecenie brzmi jak to napisałaś, to brniesz w ślepy zaułek. Odnosząc się do Twojego kodu intencję kopi możesz zrealizować tak:
for (size_t i = 0; i < n; ++i)
{
b[i] = a[i];
}
Ale nie jest spełnione wymaganie polecenia że są to wskaźniki.
Obrócenie napisu można z łatwością wykonać "w miejscu" bez alokowania dodatkowej pamięci. Wystarczy:
1. Do funkcji podać wskaźnik na pierwszy element napisu.
2. Funkcja z użyciem strlen(...) (lub std::strlen(..) ) z <string.h> (lub <cstring>), obliczy długość łańcucha. Przed wskaźnikiem końca jest ostatni znak. Hmm.. to ma być w C czy C++?
3. Wymieniasz znaki z początku i końca oraz inkrementujesz wskaźnik początku i dekrementujesz wskaźnik końca. Robisz to do momentu zrównania się wskaźników.
PS. Kopiowanie w końcu czy odwracanie i C czy C++?