Я пытаюсь сравнить числовые значения двух указателей с оператором "> =", но вместо их сравнения он добавляет некоторые случайные значения к первому.
void obj::Loader::calculate_size(const char* start_ptr, const char* end_ptr, atomic_long& v, atomic_long& vt, atomic_long& vn, atomic_long& f) {
while (start_ptr >= end_ptr) {
if (*start_ptr == 'v') {
start_ptr++;
if (*start_ptr == ' ') {
v++;
start_ptr += 27;
}
else if (*start_ptr == 't') {
vt++;
start_ptr += 18;
}
else if (*start_ptr == 'n') {
vn++;
start_ptr += 21;
}
}
else if (*start_ptr == 'f') {
start_ptr++;
if (*start_ptr == ' ') {
f += 3;
start_ptr += 17;
}
}
start_ptr++;
}
}
Эта функция должна подсчитывать всеэкземпляры этих букв в части отображенного в памяти файла (от «start_ptr» до «end_ptr»).Зная минимальную длину в определенных частях файла, я решил увеличить «start_ptr» более чем на один раз, но, делая это, я не могу полагаться на оператор «! =», Чтобы остановить цикл.
Проблема в том, что "> =" на самом деле не работает, как на целых числах, а просто вылетает.Есть ли альтернативы?