系统错误提示:
*** glibc detected *** java: malloc(): memory corruption: 0x000000000313d620 ***
======= Backtrace: =========
/lib64/libc.so.6[0x2b752e85725e]
/lib64/libc.so.6(__libc_malloc+0x6e)[0x2b752e85909e]
/lib64/libc.so.6[0x2b752e8459aa]
/root/dotabuff/libDota2BuffLib.so(WriteStringToLog+0x34)[0x2b753ef7c841]
代码:
void WriteStringToLog(char* pLogStr , long lLen)
{
if(pLogStr == NULL)
{
return;
}
FILE* fLogFile = fopen("/opt/Linux_Server_Log" , "ab+");
if(fLogFile == NULL)
{
return;
}
long lWriteDataNum = 0;
long lWriteDataTotal = 0;
while(1)
{
lWriteDataNum = fwrite(pLogStr , sizeof(char) , (lLen - lWriteDataTotal) , fLogFile);
lWriteDataTotal += lWriteDataNum;
if(lWriteDataTotal >= lLen || lWriteDataNum == 0)
{
break;
}
}
if(fLogFile)
{
fclose(fLogFile);
}
}
其中参数pLogStr 是在调用此函数的函数里用char log[100]声明的,这里需要free吗?
这个错误是什么原因导致的呢
linux c 内存泄露问题
答案:3 悬赏:40 手机版
解决时间 2021-03-01 13:08
- 提问者网友:星軌
- 2021-02-28 12:44
最佳答案
- 五星知识达人网友:鸽屿
- 2021-02-28 13:19
不需要free
全部回答
- 1楼网友:西岸风
- 2021-02-28 14:19
不用,返回的那个struct tm指针并不是用malloc分配的,而是指向一个静态变量。
- 2楼网友:蓝房子
- 2021-02-28 14:06
ILen传进来多少?
如果ILen>pLogStr分配的地址,不就越界了么
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯