Dam*_*ati 0 c string memory-management strcat
伙计我正在生成一个字符串,它可以显示文件的路径,连接宏和字符串.功能是这样的:
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;
}
Run Code Online (Sandbox Code Playgroud)
返回的指针引用一个正确的字符串,但在调用此函数后,该进程抛出了一个非常非常糟糕的*glibc检测到./mmboxd:malloc():内存损坏:0x085310a8**带有相对回溯.我知道这就是问题,因为我一旦实现它就开始出现这个错误,而且因为我使用的唯一的malloc就在这里.这段代码有什么问题?