char* reverse(char*);
main()
{
    printf("\n%s", reverse("computer"));
}
char* reverse(char* p)
{
    int l, i;
    char t;
    for (l = 0; *(p + l) != '\0'; l++)
        ;
    for (i = 0; i < l / 2; i++)
    {
        t = *(p + i);
        *(p + i) = *(p + l - 1 - i);
        *(p + l - 1 - i) = t;
    }
    return (p);
}  
Not getting output. output shows Process returned -1073741819 (0xc0000005).
You should use char st[] = "computer"; reverse(st); not reverse("computer"); for "computer" is literal string.
The following code could work:
#include <stdio.h>
char* reverse(char*);
int main() {
  char st[] = "computer";
  printf("%s\n", reverse(st));
  return 0;
}
char* reverse(char* p) {
  int l, i;
  char t;
  for (l = 0; *(p + l) != '\0'; l++)
    ;
  for (i = 0; i < l / 2; i++) {
    t = *(p + i);
    *(p + i) = *(p + l - 1 - i);
    *(p + l - 1 - i) = t;
  }
  return p;
}
User contributions licensed under CC BY-SA 3.0