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