vitalik_1984 писал(а):Сам разобрался, значит помощь была не нужна

А если серьезно то я вообще даже не увидел где у вас там в коде объявление массива buff[32]
Хотя нет сейчас увидел, но конструкция вашего объявления shunt мне непонятна.
Конечно не будет совсем понятна. Я ведь только кусочек класса выложил. А именно, проблемное место. Фишка была в том, что я обращался к массиву и к его элементам через указатель и меня постоянно это беспокоило "Что-то не так, не надёжно это... если массив разбросается по памяти, то каюк.."
Проблему решил использованием класса CStringA. Во время дебага, я заметил, что массив почему-то стал фрагментироваться после приёма данных (наверное, идиоццкая реализация функции чтения с порта или где-то мой косяк

) С использованием CStringA, я отдал этот буфер на съедение компилятору. Вроде как, теперь всё работает корректно и мне стало проще разгребать все эти данные.
Ну и ещё одна проблема была в ошибочных настройках таймаутов по приёму данных и кривость программы в девайсе, который эти данные шлёт. По протоколу, пакеты должны были разделяться таймаутами не менее 10мс, а девайс слал разорванные пакеты с различными таймаутами и в итоге, эти пакеты не проходили на целостность. Напарнику пришлось ещё раз объяснить про работу протокола, вместе с ним изучить его прошивку и подправить его код.
Сейчас все проблемы решены.
