void strip(char *string, char s){ char *mstring; while (*string++ != '\0'){ if (*string != s){ *mstring++ = *string; } } copy(string, mstring); }when run it gives a seg fault at:
*mstring++ = *string;
IsrealJones - Mar 22 2021 07:21 AM
WendellHarper - Dec 06 2020 01:21 PM
WendellHarper - Dec 06 2020 01:14 PM
pindo - Jul 23 2020 01:33 AM
iwinx - Jul 17 2020 12:02 PM
Posted 22 October 2009 - 07:34 AM
void strip(char *string, char s){ char *mstring; while (*string++ != '\0'){ if (*string != s){ *mstring++ = *string; } } copy(string, mstring); }when run it gives a seg fault at:
*mstring++ = *string;
Posted 22 October 2009 - 07:38 AM
Posted 22 October 2009 - 08:58 AM
char mstring[strlen(string)]; int i = 0; // snip mstring[i] = *string; i++;?
Posted 22 October 2009 - 09:04 AM
char* mstring = malloc(strlen(string)); ... free(mstring);
Posted 22 October 2009 - 09:13 AM
void strip(char *string, char s){ char* mstring = malloc(strlen(string)); while (*string++ != '\0'){ if (*string != s){ *mstring++ = *string; } } copy(string, mstring); }like this:
char string[] = "Hello everybody\n"; strip(string, '\n'); printf(string);it still has a newline
Posted 22 October 2009 - 09:32 AM
Posted 22 October 2009 - 09:44 AM
Posted 22 October 2009 - 12:59 PM
void strip(char* string, char c) { int size=sizeof string; char tstring[size]; int count1=0, count2=0; for(count1; string[count1]!='\0'; count1++) { if(string[count1]!=c) { tstring[count2]=string[count1]; count2++; } } tstring[count2]='\0'; count1=0; for(count1; count1<=count2; count1++) { string[count1]=tstring[count1]; } }
Posted 22 October 2009 - 01:26 PM
void strip(char* string, char s) { char* mstring = malloc(strlen(string) + 1); int i = 0, a = 0; while (string[i] != '\0') { if (string[i] != s) { mstring[a] = string[i]; ++a; } ++i; } mstring[a] = '\0'; strcpy(string, mstring); free(mstring); }
Edited by marwex89, 23 October 2009 - 09:54 AM.
Posted 23 October 2009 - 09:44 AM
The most common source of problems is writing more to a malloc'ed region than it was allocated to hold; a particularly common bug is to malloc(strlen(s)) instead of strlen(s) + 1.
Posted 23 October 2009 - 09:54 AM
Posted 24 October 2009 - 05:24 AM