Why does this happen ??

Koundinya.K kk@ddeorg.soft.net
Wed Nov 29 01:53:00 GMT 2000


Hi,
	While I have been trying to compile a large chunk of code I 
have the following piece of code ( to reverse a string - which I 
have simulated here to highlight the problem)

#include <stdio.h>
#include <string.h>

main()
{
        char    *s="Hello World";
        int     c, i, j;
        for (i = 0, j = strlen(s) - 1; i < j; i++, j--) {
                c = s[i];
                s[i] = s[j];
                s[j] = (char)c;
        }
        fprintf(stdout,"Reversed string=%s\n",s);
}

When I compile this code with gcc, the resulting binary seg 
faults. This happens on 2 flavors of O.S that I tried ( My MIPS 
based SVR4.2, Redhat Linux)
..

But when I compile the above code on using my native compiler, 
the resulting binary works.

Any explanation for this ?. Why does gcc behave like this ?.

Thanks for any pointers.

Koundinya



More information about the Gcc mailing list