Hello I am trung following two versions of string reversion.

But I am getting unhandles exception at red lines...

Please advise..



Code:
# include<stdio.h>


/*void reverse(char *p)
{
	static char firstTime = 1;
	static char *s;
	
	if (firstTime)
	{
		s = p;
		firstTime = 0;
	}

	if ( *p == '\0')
		return;
	
	reverse(p+1);
	*s++ = *p;
}*/

my_reverse(char *a,char *b,int len)
{
	while( len-- )
	{
		(*a) = (*a) ^ (*b);
		(*b) = (*b) ^ (*a);
		(*a) = (*a) ^ (*b);

		a++;
		b--;
	}
}


main()
{
//	reverse("I_AM_FINE");
	char *p = "I_AM_FINE";

	printf("%s\n",p);
	my_reverse(p,p+strlen(p)-1,strlen(p)/2);
	printf("%s\n",p);

}