Форум программистов, компьютерный форум CyberForum.ru

Что тут не так? - C++

Восстановить пароль Регистрация
 
Ayas
Сообщений: n/a
21.10.2012, 07:45     Что тут не так? #1
Всем привет!

Объясните пожалуйста почему этот код работает некорректно:

C++
1
2
3
4
while (count--)
{
    map->insert(std::pair<std::string, item *>(va_arg(arguments, char *), va_arg(arguments, item *)));
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2012, 07:45     Что тут не так?
Посмотрите здесь:

C++ Что тут не так?
строки. что-то тут не так C++
что тут не так??? C++
C++ Делаю сапёр. что тут не так????
Что тут не так? C++
Поясните чайнику что тут не так C++
C++ Что тут не так?
Подскажите,что тут не так? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soft.creator
 Аватар для soft.creator
103 / 103 / 4
Регистрация: 17.10.2010
Сообщений: 283
21.10.2012, 13:43     Что тут не так? #2
Я бы написал так:
C++
1
2
3
4
5
6
while (count--)
{
    std::string str(va_arg(arguments, char *));
    item* i = va_arg(arguments, item *);
    map->insert(std::make_pair(str, i));
}
Связано это с тем, что компилятор имеет право изменять порядок вычисления аргументов функции с целью оптимизации. С большой вероятностью, это у Вас и случилось
Yandex
Объявления
21.10.2012, 13:43     Что тут не так?
Ответ Создать тему
Опции темы

Текущее время: 04:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru