Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Строки символов 
:(
    Опции темы
S.A.G.
Дата 14.1.2008, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

Репутация: нет
Всего: 19



Просветите для меня, плиз, следующий момент.

Вот этот код в VC 8 в консольном проекте вызывает вполне нормальную реакцию - заполнение char-массива строкой "Hello, World!" с завершающим нулем:
Код
char szBuf[] = "Hello, World!";


Почему то же самое не работает в Win32 проекте? - В ходе выполнения значение либо нельзя определить, либо записывается непонятно что.


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
JackYF
Дата 14.1.2008, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(S.A.G. @  14.1.2008,  12:22 Найти цитируемый пост)
Почему то же самое не работает в Win32 проекте? - В ходе выполнения значение либо нельзя определить, либо записывается непонятно что.

Код верный, понятие не имею, что там можешь не работать?
Так оно не компилируется или не работает? давай минимальный код, давай симптомы.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
S.A.G.
Дата 14.1.2008, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

Репутация: нет
Всего: 19



Вот и мне, аналогично, ничего не понятно.

Добавлено @ 13:57
Есть функция,

Код
void Calc(HWND hwnd)
{
    float Hw, l, q, qn;
    char szBuf[100] = "Hello, World!";
    DWORD cbText;
    
    Hw = 1;
    *(WORD *)szBuf = sizeof(szBuf);
    cbText = (WORD)SendDlgItemMessage(hwnd, IDC_EDIT1, EM_GETLINE, 0, (DWORD)(LPSTR)szBuf);
    
    szBuf[cbText] = '\0';
}


в ней на строке "*(WORD *)szBuf = sizeof(szBuf);" ставлю брейкпойнт, запускаю. Сразу после запуска видно как он перемещается на 2 строчки вниз и, естественно, функция стопорится уже после присваивания *(WORD *)szBuf = sizeof(szBuf);. Почему перескакивает брейкпойнт? Как просмотреть содержимое массива во время выполнения ДО этого действия? Почему присваивание первому слову массива szBuf не затирает первые 4 буквы ("Hell"), а сдвигает их?

Это сообщение отредактировал(а) S.A.G. - 14.1.2008, 14:01


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
JackYF
Дата 14.1.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(S.A.G. @  14.1.2008,  12:43 Найти цитируемый пост)
Почему перескакивает брейкпойнт?

Ну это вопрос к вижуаловскому отладчику.

Цитата(S.A.G. @  14.1.2008,  12:43 Найти цитируемый пост)
Почему присваивание первому слову массива szBuf не затирает первые 4 буквы ("Hell"), а сдвигает их?

Давай подробнее, с отладочным выводом.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
S.A.G.
Дата 14.1.2008, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

Репутация: нет
Всего: 19



Ну что там еще подробнее. До присваивания хелло ворлд стоит начиная с 0, а после - начиная с 4.


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
bsa
Дата 14.1.2008, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



S.A.G., отключи оптимизацию
PM   Вверх
S.A.G.
Дата 14.1.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

Репутация: нет
Всего: 19



Отключил, изменения на лицо. А что - если оптимизация, то она обязательно кривая? Может быть с оптимизацией нет смысла пользоваться дебагером - он будет выдавать всякую чушь?


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
bsa
Дата 14.1.2008, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(S.A.G. @ 14.1.2008,  14:58)
Может быть с оптимизацией нет смысла пользоваться дебагером - он будет выдавать всякую чушь?

именно.
PM   Вверх
Rickert
Дата 15.1.2008, 04:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 0
Всего: 52



Интересно, никогда такого не встречал.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
bsa
Дата 15.1.2008, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(Rickert @ 15.1.2008,  04:33)
Интересно, никогда такого не встречал.

Включи оптимизацию и встретишь.
PM   Вверх
Lazin
Дата 15.1.2008, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(bsa @  15.1.2008,  13:01 Найти цитируемый пост)
Включи оптимизацию и встретишь. 

 smile 
при оптимизации, теряется связь между значениями регистра IP и номерами строк, которая определена в pdb-шнике, из за того что компилятор может что-то выкинуть, где-то изменить алгоритм, развернуть цикл...
PM MAIL Skype GTalk   Вверх
archimed7592
Дата 15.1.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Lazin @  15.1.2008,  13:11 Найти цитируемый пост)
ри оптимизации, теряется связь между значениями регистра IP и номерами строк, которая определена в pdb-шнике

Да лан, серьёзно что ль? smile
Мне казалось, что отладочная информация добавляется по немного иному алгоритму smile. Хотя... возможно, мой взгляд ограничен использованием GCC.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0710 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.