The way I understand reversing a string in place is that when you reverse a string, you modify the original. On the other end, when you don't reverse a string in place, you use more memory, but still have the original string. Maybe I'm being really stupid on this, but I don't see how the latter can be done.
Even if I go something like
Code:
void reverse (char s[]) {
/*code*/
}
int main(void) {
char buffer[] = "stringy";
reverse(buffer);
return 0;
}
I still modify buffer (ie no longer have the original string).