c - Free() : invalid next size (fast) error -
so keep running error: free(): invalid next size(fast) when run code. if remove free @ end of function know leaking memory don't understand why getting error.
i assume has me allocating memory incorrectly can't seem find fix, here code:
bool parse(const char* line) //not working quite  {     char* copy = malloc(sizeof(line)); //allocate space copy of line parameter     strcpy(copy, line); //copy line parameter      char* method = strtok(copy, " "); //pointer method      char* reqline = strtok(null, " "); //pointer requestline     char* version = strtok(null, "\r\n"); //pointer http-version      if (strcmp(method,"get") != 0) //if method not     {         printf("%s\n", method);         printf("error 405\n");         return false;     }     if (strncmp(reqline, "/", 1) != 0)//if request line not begin / character     {         printf("%c\n", reqline[0]);         printf("%s\n", reqline);         printf("error 501\n");         return false;      }     if (strchr(reqline, 34) != null) //if request line contains " character     {         printf("%s\n", reqline);         printf("error 400\n");         return false;     }     if (strcmp(version, "http/1.1") != 0)     {         printf("%s", version);         printf("error 505\n");         return false;     }  //free(copy);  return true; }   if helps passed in const char* line of form:
method
sp request-target sp http-version crlf
where sp space , crlf carridge return, line feed.
change this:
char* copy = malloc(sizeof(line));   to this:
char* copy = malloc(strlen(line) + 1);   the first allocates space size of line, pointer!
while second, allocates space equal length of string line points to, plus one, null terminator (please don't forget , live happier c-life)! ;)
btw, believe it's more common write comments of code above line of code (rather next it). :)
Comments
Post a Comment