0 / 0 / 4
Регистрация: 04.10.2010
Сообщений: 115
1

Странное принятие функцией параметров

20.03.2013, 21:25. Показов 709. Ответов 2
Метки нет (Все метки)

Кто знает почему в данной функции (использую ее при написании DLL) очень странно ведут себя числовые переменные?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//функция перевода из строки в число hex
DWORD _Converter(const char* word, int _len)
{
    DWORD _hex = 0;
    int len = _len;
 
    int n = len - 1;
    while(word[n] != 'x' || word[n] != ' ' || word[n] != 0 || n != 0)
    {
        if(48 <= word[n] && word[n] <= 57)    _hex = _hex + (word[n] - 48)*pow((double)16, len - n - 1);
        if(65 <= word[n] && word[n] <= 70)    _hex = _hex + (word[n] - 55)*pow((double)16, len - n - 1);
        if(97 <= word[n] && word[n] <= 102)   _hex = _hex + (word[n] - 87)*pow((double)16, len - n - 1);
 
        n--;
    }
 
    return _hex;
}
Переменные передаются и принимаются вроде верно, но под отладчиком видно что с ними происходит какая-то муть.
_len начинает меняться, а n и len отследить вообще не удается - эти переменные не видны в списке значений.

Пример вызова функции:
C++
1
2
3
len = i;
 ekz._eipInt.push_back(_Converter(word.c_str(), len));
 i += 2;
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2013, 21:25
Ответы с готовыми решениями:

Принятие параметров с помощью PERL(DBD::Oracle)
Есть процедура в PL/SQL которая принимает один параметр, и на его основе создает выходной параметр...

Открытие файла в приложении, принятие параметров cmd
Доброго времени суток, помогите пожалуйста решить проблему, не могу сообразить, что не так. Сделал...

Принятие параметров в ссылке и их отправка далее по ссылке без action
Доброго времени суток. У меня есть данный кусок кода &lt;?php if (isset($_GET)) { $_SESSION...

Странное поведение gcc с sqrt() функцией
Писал для приятеля простую программку вычисления выражения,они работают под Linux,возник такой...

2
Don't worry, be happy
17588 / 10387 / 2007
Регистрация: 27.09.2012
Сообщений: 26,120
Записей в блоге: 1
21.03.2013, 12:48 2
C++
1
while(word[n] != 'x' || word[n] != ' ' || word[n] != 0 || n != 0)
Условие всегда истинно->выход за пределы->UB, не?
0
0 / 0 / 4
Регистрация: 04.10.2010
Сообщений: 115
21.03.2013, 18:00  [ТС] 3
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
while(word[n] != 'x' || word[n] != ' ' || word[n] != 0 || n != 0)
Условие всегда истинно->выход за пределы->UB, не?
Да, это я исправил на &&. Но проблема не в этом была. Запустил тот же проект на стационарном компе: х86 винда хр, вместо х64 винда 7. Там всё нормально...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2013, 18:00
Помогаю со студенческими работами здесь

Странное поведение при передаче параметров
Имеется некое окно, в котором есть некая таблица. В модель таблицы, в качестве значений передается...

Передача параметров в модель - странное поведение
Доброго времени суток, уважаемые форумчане! Создал вот такой класс: class Test &lt;...

Обработка входных параметров функцией
Приветствую. Начала изучать C++. Читаю Страуструпа. Заголовочный файл, что прикладывался к книге -...

Выдача функцией нескольких выходных параметров
Здравствуйте! Требуется реализовать функцию, которая не принимает никаких аргументов, а возвращает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru