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

Компилятор visual studio скачет по коду

18.01.2016, 22:23. Показов 1449. Ответов 9

Студворк — интернет-сервис помощи студентам
В прошлый раз похожая проблема решилась переключением с debug на release, однако сейчас в настройках и так все на релиз.
Порядок прохождения компилятора по коду, если nick == kp0hyc, а s == hello:
1; 2; 5; 6; 1; 6; 11; 9; 12; 14; 15; 16; 17; 16; 21
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
printf("%s", s);
printf("\n");
char message[255];
int i = 0;
int nickLen = strlen(nick);
for (; i < nickLen; i++) {
    message[i] = nick[i];
}
message[i++] = ':';
message[i++] = ' ';
for (; i - 2 - nickLen < strlen(s); i++) {
    message[i] = s[i];
}
printf("%s", message);
printf("\n");
for (int i = 0; i <= sumOfClients; i++) {
    if (send(clients[i], s, strlen(s) + 1, 0) == SOCKET_ERROR) {
        printf("can't send\n");
        return;
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2016, 22:23
Ответы с готовыми решениями:

Компилятор Visual Studio
Посоветуйте хороший компилятор Visual Studio по таким требования: Одним словом что бы на диске С...

Компилятор С++ из MS Visual Studio
Приветствую! Приходится кодить понемногу на разных ЯП, то веб, то систему, поэтому пользуюсь...

Компилятор Visual studio 2008 C++
Как скомпилировать программу написанную в Visual C++ что бы она показала все значения ! Ну как в...

Visual Studio 2017 Компилятор
Почему у меня нет компилятора как на видео? Отсутствуют элементы управления СБОРКА, ОТЛАДКА и пр.,...

9
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
18.01.2016, 23:19 2
Цитата Сообщение от Данила915 Посмотреть сообщение
переключением с debug на release
Скорее наоборот.
0
1 / 1 / 0
Регистрация: 13.01.2016
Сообщений: 9
18.01.2016, 23:24  [ТС] 3
А в чем причина этого странного поведения?
0
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
18.01.2016, 23:46 4
Лучший ответ Сообщение было отмечено Данила915 как решение

Решение

Release оптимизирует код. Т.е. может переставить и даже выкинуть некоторые куски кода. Да и отладочную информацию обычно не сохраняет.
1
1 / 1 / 0
Регистрация: 13.01.2016
Сообщений: 9
19.01.2016, 05:35  [ТС] 5
И как заставить его перестать оптимизировать в release версии?
0
Модератор
Эксперт С++
13251 / 10390 / 6213
Регистрация: 18.12.2011
Сообщений: 27,792
19.01.2016, 07:46 6
Цитата Сообщение от Данила915 Посмотреть сообщение
printf("%s", message);
Нужно, чтобы у message был терминальный нуль. А Вы его не вставили.
Возможно в debug версии массив инициализируется нулями, а в release - нет.

И, кстати, зачем копировать посимвольно, если есть стандартные функции,
которые сами вставляют нуль
C++
1
2
3
strcpy(message,nick);
strcat(message,": ");
strcat(message,s);
0
1 / 1 / 0
Регистрация: 13.01.2016
Сообщений: 9
19.01.2016, 09:32  [ТС] 7
zss, спасибо, не знал про strcat
1
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
19.01.2016, 12:04 8
Цитата Сообщение от Данила915 Посмотреть сообщение
И как заставить его перестать оптимизировать в release версии?
Зачем? У вас две предопределенные конфигурации. Одна с оптимизацией, вторая без оптимизации. Вы хотите две одинаковых? Вам просто слово Release нравится?
0
1 / 1 / 0
Регистрация: 13.01.2016
Сообщений: 9
19.01.2016, 12:44  [ТС] 9
avgoor, тот вопрос уже не актуален, я понял свою ошибку.
0
5230 / 3202 / 362
Регистрация: 12.12.2009
Сообщений: 8,112
Записей в блоге: 2
19.01.2016, 13:11 10
когда в конце ф-ции/блока неожиданно назад перескакивает, это он на деструктор локальной переменной переходит, просто его не видно. По крайней мере у меня gdb так делает.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2016, 13:11
Помогаю со студенческими работами здесь

Посоветуйте компилятор из MS Visual Studio
MS Visual Studio 6.0 C++ или MS Visual Studio 2005? И пожалуйста называйте причины почему вы...

Где в Visual Studio находится компилятор?
И как он называется? Компилятор же? Не ассемблер, правильно говорить?

Как настроить компилятор в Visual Studio?
Всем привет. У меня стоит студия 2012 експресс. Там поддержка С++. То есть, если я пишу на С, но...

Где взять компилятор C от Visual Studio?
Пытаюсь установить Visual Studio 13 или 15. У меня Windows 7. Просит установить первый сервис пак....

Как поменять компилятор на Visual Studio 2010?
Компилятор на VS2010 морально устарел. Весь код который нахожу писан явно на компиляторах посвежее...

Как настроить компилятор Visual Studio 2017 на язык Си?
В свойствах проекта меняю на компилировать на си, после запуска отладки выходит ошибка и...


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

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

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