I know this is a common forum post but I don't see how they fit with my code/problem:
please help, i have performed many experiements and can't pin point the issue. thank you
Code:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void cds( char *cdsprefix )
{
// default
char *prefix = "somereally_long_string_09";
if( cdsprefix )
{
printf("we passed in a prefix...\n\n");
printf("strlen of prefix : %d\n", strlen(prefix)); //25
printf("strlen of input : %d\n", strlen(cdsprefix)); //3
strcpy( prefix, cdsprefix ); //SEG FAULT HERE!!!!!!!!!!
printf("i guess that strcpy passed...\n\n");
}
printf("now prefix string is : %s\n\n\n", prefix);
}
int main(void)
{
char *abc = "abc";
char *rest = NULL;
rest = (char *)(malloc(strlen(abc) * sizeof(char) + 1 ));
strcpy( rest, abc );
printf("rest is now : %s \n\n\n", rest);
/////////////other test ///////////////
// we pass in rest
cds(rest);
return 7;
}
please help, i have performed many experiements and can't pin point the issue. thank you
Comment