Две вещи приходят на ум.
Сначала это была функция во встроенном C (MCU). Я пытался установить некоторые ограничения на значение таймера при вводе функции. так я написал
if(55000 < my_var < 65000)
Мой ида должен был проверить вот так:
if( (55000<my_var) < 65000)
Но это эквивалент или результат
if( (55000<my_var) || (my_var<65000))
и в итоге результат if был всегда верным.
Звук был ошибкой указателя. (просто здесь представлено)
get_data(BYTE **dataptr)
{
ubyte* data = malloc(10);
... code ...
*dataptr = &data[1];
}
main()
{
BYTE *data
get_data(&data);
free(data);
}
Это приводит к потере 1 байта памяти при каждом вызове функции get_data()
.