в usb_otg_fs(interrupt) я читаю данные и динамически выделяю 8 байт (и записываю 8 байт), но проблема в том, что иногда происходит сбой при new/malloc/delete/free, мне потребовалось
много времени, чтобы просмотреть код, и я уверен, что моя куча памяти еще не закончилась 30%.
дело в том, что иногда происходит сбой в функции main(), в местах new/malloc/delete/free
код main()
Код: Выделить всё
while (1)
{
int r =1000; // số ngẫu nhiên 0..200
const uint32_t ran_1 =(rand() % r) +1;
uint8_t *p = (uint8_t*)malloc(ran_1);
const uint32_t ran_2 =(rand() % r) +1;
uint8_t *p1 = (uint8_t*)malloc(ran_2);
const uint32_t ran_3 =(rand() % r) +1;
uint8_t *p2 = (uint8_t*)malloc(ran_3);
const uint32_t ran_4 =(rand() % r) +1;
uint8_t *p3 = (uint8_t*)malloc(ran_4);
const uint32_t ran_5 =(rand() % r) +1;
uint8_t *p4 = (uint8_t*)malloc(ran_5);
const uint32_t ran_6 =(rand() % r) +1;
uint8_t *p5 = (uint8_t*)malloc(ran_6);
free(p);
free(p1);
free(p2);
free(p3);
free(p4);
free(p5);
}
Меня интересует, является ли динамическое выделение памяти в прерывании хорошей идеей или нет, и почему?
Подробнее здесь: https://stackoverflow.com/questions/797 ... -interrupt
Мобильная версия