マクロと文字列を連結して、ファイルへのパスを表す文字列を生成しています。関数は次のとおりです。
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 がここにあるためです。このコードの何が問題になっていますか?