Ребята, я генерирую строку, которая представляет путь к файлу, объединяя макрос и строку.Функция такова:
char *userPath(char *username)
{
char *path = (char*)malloc(sizeof(char) * (strlen(MAILBOXES) + strlen(username) + 1));
path[0] = '\0';
strcat(path, MAILBOXES);
strcat(path, "/");
strcat(path, username);
return path;
}
Возвращенный указатель ссылается на правильную строку, но после некоторого вызова этой функции процесс выбрасывает очень и очень плохой * обнаруженный glibc ./ mmboxd: malloc (): повреждение памяти: 0x085310a8 ** с относительной обратной трассировкой.Я знаю, что здесь проблема, поскольку я однажды реализовал эту ошибку, а также потому, что здесь используется только один malloc.Что не так с этим фрагментом кода?