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