У меня проблемы с памятью. Проблема в том, что когда строка освобождается (free(line)
), появляется
free (): неверный размер ошибки.
Из того, что я знаю, sscanf
не изменяет строку, переданную в него. Как ни странно, free(line)
внутри оператора if работает нормально. Я не уверен, в чем проблема, потому что я освободил char*
как это в других частях моей программы без проблем, хотя и без вызова sccanf. Любая помощь будет оценена.
char* line;
read_line(read, &line, 0);
printf("%s\n", line); //gives "playinfoA/30"
char playerLetter[1];
char numberOfPlayers[2];
char temp[1];
if (sscanf(line, "playinfo%1s%1s%s", playerLetter, temp,
numberOfPlayers) != 3) {
free(line);
return -1;
}
//free(line);
return 0;