Вечная классика
Вечная классика
Господа, нужна помощь по QT на C++ опытом/советом. Самоучка, осваиваю походу реализовывая конкретную цель для себя, хобби, бывает делаю как получается и как знаю, а не как по феншую. Итого: в одном потоке получаю данные по APl и записываю в глобальную переменную, в другом потоке считываю эту переменную, иногда видимо они пересекаются и приложение падает, мутексы не помогают или я неверно их использую. Это точно в этом месте, потому что я выяснил это на раннем этапе и кое-как боролся, функционал растет и старые методы борьбы дальше не подойдут. Может в комментах телегу свою кто напишет, чтобы связаться и помочь советом? Есть еще проблемы с АРI, падает связь иногда и программно не получается восстановить (т.е. пробовал удалить и создать NetworkManager и др., что сумел), помогает только перезапуск приложения.
upd. все, нашел, спасибо про совет запуска в дебаге. я до этого по дебагу не понимал где конкретная точка проблемы, вчера разобрался и он показал где: в одном потоке буффер очищался после прочтения, а в другом прилетали и записывались новые данные. добавил еще один мутекс в эту часть кода и для верности передаю буффер в другой поток в составе сигнала (как аргумент) при вызове слота
Всем привет! Со своей стороны могу помочь с программированием на Си, микроконтроллерами и всем связанным с этим, в телеге ник как здесь
На Альт Линукс есть сложности по установке питона и С.
Американский Линукс сложно переустановить Альт Линуксом.
Ещё больше журнализма по ссылке:
https://d-russia.ru/gosudarstvo-zakupilo-dlja-shkol-noutbuki...
Здравствуйте. Можете по строчкам расписать для совсем начинающих программистов, что за магия тут происходит? Спасибо.
char* strncat(char* dest, const char* src, size_t n) {
char* ret = dest;
while (*dest) dest++;
while (n--)
if (!(*dest++ = *src++)) return ret;
*dest = 0;
return ret;
}
char* strchr(const char* str, int c) {
while (*str != (char)c)
if (!*str++) return 0;
return (char*)str;
}
char* strcat(char* dest, const char* src) {
char* ret = dest;
while (*dest) dest++;
while (*dest++ = *src++)
;
return ret;
}