Как быть?
понял что проект VS обязательно должен быть оконным, в противном случае тупо не будет ресурсов
выяснил что проблема в sizeof(buf) который почему то равен 8 после передачи в функцию
как я могу это сделать?
include <файл в конце стрелки>
в h файл в начале стрелки. Стрелки использования добавляют include <файл в конце стрелки>
в cc файл в начале стрелки. ONESTOPBIT ломало передачу блока
DWORD ComIface::write(byte* data, int count)
DWORD ComIface::read_block(byte* buffer, int size)
hpet rt; while (get_stats().cbInQue < size) { if (!SetCommMask(port_handle, EV_RXCHAR)) { printf("SetCommMask failed with error %d.\n", GetLastError()); return NumberOfBytesRead; } WaitCommEvent(port_handle, &status, &overlap); WaitForSingleObject(overlap.hEvent, read_delay); if (rt.get_ms_dt_weak().count() > read_delay * size) { return NumberOfBytesRead; } }
Какие проблемы приводят к такому и как это чинить?
что я сделал не так, подскажите пожалуйста
if (b[i] >= x || b[i] <= y) { a[j] = b[i]; j++; } ... if (b[i] < x || b[i] > y) { a[j] = b[i]; j++; }
if
не являются взаимоисключающими, а значит j
может стать больше чем n
и запись в a[j]
вылезет за границу массива.if (!(b[i] >= x || b[i] <= y))
и это гарантирует, что индекс не выйдет за пределы массива, вне зависимости от правильности первого условия. initialization of 'hInstanse' is skipped by 'case' label, почему?
switch (uMsg) { ... case WM_CREATE: //получаем дескриптор приложения HINSTANCE hInstance = GetModuleHandle(0); ... break; case WM_MOUSEMOVE: //устанавливаем тот или иной курсор в зависимости от местонахождения мыши ...
WM_MOUSEMOVE
код попадёт в область где hInstance определён, но минует его инициализацию. Компилятор туповат, чтобы понять, что hInstance дальше не используется. Простейший фикс -- обернуть код обработчиков в блоки:switch (uMsg)
{
...
case WM_CREATE:
{
//получаем дескриптор приложения
HINSTANCE hInstance = GetModuleHandle(0);
...
}
break;
case WM_MOUSEMOVE:
{
//устанавливаем тот или иной курсор в зависимости от местонахождения мыши
...
}
...
считать количество русских букв, однако он не правильно это делает, что не так?
setlocale(LC_ALL, "");
const char *str = input.c_str();
while (*str) {
wchar_t c;
int n = mbtowc(&c, str, MB_CUR_MAX);
if (n < 0)
break;
if (wcschr(L"абвгд...юя", c))
++count;
str += n;
}
ctypes.restype(outdata)
, где outdata
-- тип rez1
, см), либо переделать функцию так, чтобы она не требовала скрытого параметра (например, добавив явный указатель на результат в список параметров, см). D:\ N E W\ 1637\ 1\Talking LED Alarm Clock Using TM1637 LED Module\Code/Code.ino:91: undefined reference to `sp3_THE' D:\ N E W\ 1637\ 1\Talking LED Alarm Clock Using TM1637 LED Module\Code/Code.ino:91: undefined reference to `sp3_THE' D:\ N E W\ 1637\ 1\Talking LED Alarm Clock Using TM1637 LED Module\Code/Code.ino:92: undefined reference to `sp3_TIME'
В чему может быть проблема ?
Как можно улучшить код?
d = n < 0 ? -n : n
выглядит куда лучше семистрочного if/else.if(n<0) {
cout<<"-";
}
Уже не знаю что делать
$ g++ -std=c++11 -g -fsanitize=undefined -fsanitize=address main.cc tools.cc -o test
$ ./test
==3245365==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x606000000060 at pc 0x55b559719b47 bp 0x7ffcc39300a0 sp 0x7ffcc3930098
READ of size 8 at 0x606000000060 thread T0
#0 0x55b559719b46 in Processor::encode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) toster/1320980/main.cc:41
std::bitset<16> KR = K_array[i];
, цикл по i идёт до 9, а в массиве K_array 8 элементов. поэтапаный алгоритм определения размера
char ... c=0xA1
unsigned char
, иначе после знакового расширения получишь гарантированно отрицательный результатКак склеить байты правильно?
Единицы трансляции ведь загружаются в произвольном порядке?
Каким образом наличие слова constinit в одной из единиц трансляции гарантирует, что она загрузится раньше?
как только я ввожу число литров и нажимаю энтер все сбрасывается и ничего не выводится. Код пишется в vscode, код пытаюсь запустить в самой консоли vscode. В чем может быть проблема?
Может с кодом что-то не то
Не могу понять в чем дело
assert
использован текст с какими-то забавными символами. Два очевидных способа решения:assert
. Начать можно, например, выполнив вместо компиляции препроцессирование (заменив в командной строке вызова gcc -c
на -E
) и почитав внимательно препроцессированный код в местах на которые ругается компилятор. Ошибки вылезают в месте оператора перегрузки () и Image operator!() возникает ошибка.
Если убрать Image operator!(), то только одна ошибка ("невозможно преобразовать const_Ty в T&")
!()
, поскольку ему не требуется менять исходный объект:Image<T> operator!() const
T& operator()(int i, int j) const
, но возвращает потенциально неконстантную ссылку на внутренности объёкта -- T&
. Следующий код поэтому не будет работать: result(i, j) = -_data[i][j];
. Нужно либо выбросить ссылку из возвращаемого значения оператора T& operator()(int i, int j) const
и переписать реализацию оператора !()
, либо добавить неконстантную реализацию оператора вызова функции. Property<std::string> Name = Property<std::string>(_name); … std::cout << person.Name << std::endl; // тут ошибки
почему у string требует перегрузку для cout?
Property<std::string>
-- это не string
. Хоть у тебя и есть Property<T>::operator T() const
ничто в твоём коде не говорит о том, что Property<std::string>
нужно пытаться приводить к string
а не к какому-нибудь другому типу.