malloc() приводит к прерыванию в приложении openwrt

Я запускаю приложение в системе openwrt. Но он завершается, когда просто вызывается функция malloc(), а сигнал равен 6 (SIGABRT). не похоже, что у malloc() недостаточно memery. потому что я уверен, что система имеет достаточно memery. Пожалуйста, помогите. Спасибо

 //call malloc() here 
  printf("malloc space\n");
 tx_frame.load = (unsigned char *)malloc(8+SEND_DATA_LEN+2);
 if (tx_frame.load == 0)
 {
  printf("malloc send space failed.\n");
  return;
 }
 printf("find file\n");

//signal handler
void signal_handler(int sig)
{
    printf("sig %d\n",sig);
    printf("errno %d\n",errno);
    syslog(6, "catch the sigal:%d\n", sig);
}

//system memery info when top
Mem: 33744K used, 222700K free, 436K shrd, 3144K buff, 10760K cached

//terminal output when run the app
malloc space
sig 6
errno 36
Aborted

0 ответов

Другие вопросы по тегам