在运行pc上运行完好,但是在linux就出现了 malloc.c:2451问题,求大神解答

lu526586632 2014-09-23 10:55:57
//==================================长度84(1个字节)+地址(3个字节)+128个字节数据+校验位(1个字节)组成一条报文放到新列表中
L4=(LinkList)malloc(sizeof(LNode));//开辟头结点,链表3
L5=L4;
char TempStr[265]="";
char str7[257]="";
char str5[265]="";
char *record;
char tmp[2];
long checksum=0;
int count=strlen(buffer)/256;
int b,c;
int LinkList_Count=0;
for (i=0;i<count;i++)
{
LinkList TempData;
TempData=(LinkList)malloc(sizeof(LNode));
TempData->m_Data=(BYTE *)malloc(sizeof(BYTE)*133);
TempData->m_Data[0]=132;
b=(int)TempData->m_Data[0];
c=(int)AddrGroup[0]+0x80*i;
sprintf(str5,"%02X%06X",b,c);
str5[8]='\0';
substrcpy(buffer,str7,0,256);//取出从0开始的256个字符
strcat(str5,str7);
strcpy(TempStr,str5);
char *str8=(char*)malloc(sizeof(char)*(strlen(buffer)-255));
substrcpy(buffer,str8,256,strlen(buffer)-256);//
strcpy(buffer,str8);
free(str8);
record=TempStr;
int k=0;
for(j=0;k<132;k++,j+=2)
{
strncpy(tmp,record+j,2);
sscanf(tmp,"%02X",&TempData->m_Data[k]);
checksum=checksum+TempData->m_Data[k];
}
TempData->m_Data[132]=0xFF-checksum&0xFF; //计算校验码
checksum=0;
L5=Creat_LinkListR(TempData,L5);
LinkList_Count++;
}

前面的程序都运行正常,运行到这里就提示
zaixianshengji: malloc.c:2451: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.
程序运行到这里就不能跑了,我检查了好几遍程序,感觉都没错,请大神指导我一下,如果程序哪里没有看懂的,或者需要其他信息,请留言
...全文
597 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lu526586632 2014-09-24
  • 打赏
  • 举报
回复
必须得分配这么大 要保存数据
skychfj 2014-09-24
  • 打赏
  • 举报
回复
1. 首先定位到是运行到哪个 malloc 程序崩溃; 2. L4=(LinkList)malloc(sizeof(LNode)); 结构体 LinkList 的空间 肯定 大于 LNode ; 改为 (LinkList)malloc(sizeof(LinkList));
zhxianbin 2014-09-23
  • 打赏
  • 举报
回复
在 malloc 加 是否为 NULL 判断 , count sizeof(LNode) sizeof(BYTE)*133) 多大,内存够用吗

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧