I am wondering why am I getting segmentation fault in the below code.
int main(void)
{
        char str[100]="My name is Vutukuri";
        char *str_old,*str_new;
        str_old=str;
        strcpy(str_new,str_old);
        puts(str_new);
        return 0;
}
                You haven't initialized *str_new so it is just copying str_old to some random address.
You need to do either this:
char str_new[100];
or
char * str = (char *) malloc(100);
You will have to #include <stdlib.h> if you haven't already when using the malloc function.
str_new is an uninitialized pointer, so you are trying to write to a (quasi)random address.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With