I am trying to reverse a C style string using the following simple program.
#include "stdio.h"
void reverse (char * str);
int main (int argc , char* argv[]){
    char *str = "hello";
    reverse(str);
return 0;
}
void reverse (char *str)
{
    char *end = str;
    char tmp;
    if(str){
            while(*end){
                    ++end;
            }
            --end;
            while(str < end){
                    tmp = *str;
                    *str++ = *end;
                    *end-- = tmp;
            }
    }
}
I can't figure out why I get a "bus error" when I try to run the above program. I am using i686-apple-darwin10-gcc-4.2.1. Thanks
 
     
     
    