// keil
#include "stdlib.h"
unsigned char u1tlen;
char u1tx[48];
funA()
{
BufSize = 432;
psMb->pBuf = malloc(BufSize); //
}
funB()
{
u1tlen = sprintf(u1tx,"in %u %u %u\r\n",psMb->PosIn,psMb->PosOut,length);
uart1_tx_data((unsigned char*)u1tx,u1tlen);
}
程序经常出错,然后发现在运行u1tlen = sprintf()时居然修改了malloc指向的存储区,不理解,难道内存不够了导致?还是有什么其它原因 |