PushButton控件无法绘制文字



void
OnClick_YearUp(void)
{
 char *ucYearUpBuf;
 ucYearUpBuf = (char*)malloc(6);
 uiYearIndex++;
 //
 // 将数字转化为字符串
 //
  snprintf(ucYearUpBuf,6,"%d",uiYearIndex);
 PushButtonTextSet(&g_sYear,ucYearUpBuf);
 UARTprintf(" ucYearUpBuf的值为:%s\n",ucYearUpBuf);
  WidgetPaint((tWidget *)(&g_sYear));
  free(ucYearUpBuf);
}
这是我的控件的事件处理函数,当我将free()注释掉时,触发控件,控件能正常绘制文字,但是加上free()时控件就不能将ucYearUpBuf中的字符串绘制出来了。

请问大侠这是怎么回事啊