Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2 3  Все   Вниз
  Печать  
Автор Тема: сколько яблок у Буратино )  (Прочитано 35175 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« : 17-09-2008 08:44 » 

о том, какие вредные бывают неинициализированные переменные Улыбаюсь
(найдено в VC6 )

Код:
CString yyy()
{
DWORD dwd;
CString cs
cs.Format("%d",dwd);
return cs;
}


//где то в основной программе
::MessageBox(0,yyy(),"",MB_SYSTEMMODAL);
::MessageBox(0,yyy(),"",MB_SYSTEMMODAL);
::MessageBox(0,yyy(),"",MB_SYSTEMMODAL);
::MessageBox(0,yyy(),"",MB_SYSTEMMODAL);
::MessageBox(0,yyy(),"",MB_SYSTEMMODAL);
::MessageBox(0,yyy(),"",MB_SYSTEMMODAL);

Цитата
38149500
5175500
5175504
5175508
5175512
5175516
...(далее добавляется по 4)

при чём чехарда - в релизе (так как в дебаге всегда загружает 0xcccccccc в неинициализированную)
замечено, что зависит от списка входных параметров yyy
« Последнее редактирование: 17-09-2008 08:48 от Алексей1153++ » Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 17-09-2008 10:07 » 

это заговор
Записан

Михалыч
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 17-09-2008 10:13 » 

Неа... Это сговор Улыбаюсь
Записан

Поживем - увидим... Доживем - узнаем... Выживу - учту  Улыбаюсь
Михалыч
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 17-09-2008 10:33 » 

Просто не все...
А "подозрительно" упорядоченный сдвиг тогда откуда (особенно если учесть его первоначальное значение в отличие от последующих)?
Записан

Поживем - увидим... Доживем - узнаем... Выживу - учту  Улыбаюсь
fly
Гость
« Ответ #4 : 17-09-2008 10:43 » 

Михалыч, Алексей1153++ писАл:
Цитата
...(далее добавляется по 4)
4 это полбайта. Скорее, это номер полубайта в памяти. При выводе переменной, происходит обратный отсчет от начала сегмента, так кажется, если не ошибаюсь. И если не стоит значения по адресу, то выводится сам "отсчет" от начала сегмента. ИМХО.
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #5 : 17-09-2008 10:50 » 

fly, ты хочешь сказать что добавляется по 4-ре бита? Улыбаюсь)
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
fly
Гость
« Ответ #6 : 17-09-2008 10:57 » 

McZim, скорее по 1 полубайту, а даже не пополубайту, а по номеру этого полубайта в системе.
Записан
Михалыч
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 17-09-2008 10:58 » 

38149500
5175500
Это похоже на переход границы сегмента?
Хотя все это не принципиально. Ясно, что там "мусор"... Но уж больно упорядоченный Улыбаюсь
Записан

Поживем - увидим... Доживем - узнаем... Выживу - учту  Улыбаюсь
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 17-09-2008 10:59 » 

да не, всё проще Улыбаюсь Локальная переменная, используется стек. А в стеке могло шо угодно быть, а загадочные +4 - кто его знает откуда. Биты тут ни при чём
Записан

fly
Гость
« Ответ #9 : 17-09-2008 11:08 » 

Алексей1153++, ну мы примерно то же самое решили.
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #10 : 17-09-2008 11:08 » 

fly, какой еще полубайт, ты о чем вообще Улыбаюсь
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #11 : 17-09-2008 11:10 » 

fly, не, ты чёта другое решил ))
Записан

fly
Гость
« Ответ #12 : 17-09-2008 11:11 » 

McZim, полубайт используется главным образом в микроконтроллерном взаимодействии, а именно при операциях счета. Когда счет идет 8-ми и 16-ти ричными наборами единичек и ноликов.
Я ответил на вопрос Алексея1153++ с точки зрения железа Улыбаюсь
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #13 : 17-09-2008 11:12 » 

fly, Улыбаюсь)

совершенно не ответил.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
fly
Гость
« Ответ #14 : 17-09-2008 11:17 » 

McZim, а как тогда будет с точки зрения железа?
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #15 : 17-09-2008 11:24 » 

fly, а ты сделай подобный пример на своей машине и посмотри Улыбаюсь
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #16 : 17-09-2008 11:25 » 

fly, начнём с того, что это был не вопрос. А кончим тем, что ты хрень какую то ответил )) У тебя не железо, а фиг знает что...
Записан

fly
Гость
« Ответ #17 : 17-09-2008 11:34 » 

McZim, я серьезно.
Алексей1153++, вы просто не разобрались. Я правильно ответил.
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #18 : 17-09-2008 11:35 » 

fly, тут дело в компиляторе, а не в железе.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #19 : 17-09-2008 11:37 » 

fly, напиши на чистом СИ или СИ++ программу выложи ее сюда, я ее скомпилирую в своей среде с компилятором gcc и покажу результат, а ты скомпилируй ее в своей среде со своим компилятором и покажи результат.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #20 : 17-09-2008 11:40 » 

fly, уверен, что я правильно разобрался Улыбаюсь
А железо тут и ни при чём, мало ли что там в стеке побывало
Записан

Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #21 : 17-09-2008 11:41 » 

Цитата
счет идет 8-ми и 16-ти ричными наборами единичек и ноликов.
Это надо в какой-нибудь "цицатник"
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #22 : 17-09-2008 11:42 » 

Алексей1153++, для сравнения, не зависимо от платформы, такой код проканает? Поправь пожалуйста, если не так понял.

Код:
#include <stdio.h>
#include <iostream>

std::string yyy();

int main()
{
    for(int i=0; i<10; i++)
    {
        std::string str;
        str = yyy();

        std::cout << str << std::endl;
    }
    return 0;
}

std::string yyy()
{
int dwd;
std::string cs;
printf("%d",dwd);
return cs;
}
« Последнее редактирование: 17-09-2008 11:46 от McZim » Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #23 : 17-09-2008 11:44 » 

cout у меня не находится
Записан

McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #24 : 17-09-2008 11:45 » 

Алексей1153++, моя ошибка.

std::count и std::endl
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
fly
Гость
« Ответ #25 : 17-09-2008 11:46 » 

McZim, у меня нет щас под рукой 4-ого Buildera. Позже.
Цитата
А железо тут и ни при чём, мало ли что там в стеке побывало
Я обычно когда пишу прогу, всегда принимаю во внимание и железо тоже. Так легче.

Sla, не надо меня ни в какой цицатник помещать.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #26 : 17-09-2008 11:47 » 

error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allo
cator<char> >' (or there is no acceptable conversion)
Записан

McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #27 : 17-09-2008 11:49 » 

fly, допустим я пишу программу которая работает с БД и строками, что на твой взгляд я должен учесть с точки зрения железа?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
fly
Гость
« Ответ #28 : 17-09-2008 11:52 » 

McZim, да ты прав, что сейчас при программировании можно железо не учитывать. Но я ведь про себя говорю, мне удобнее, еще и железо подключать в мысленную модель, при написании программы, особенно если прога системная.
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #29 : 17-09-2008 11:53 » 

Алексей1153++, какой метод тебе доступен для вывода в командную строку значений?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Страниц: [1] 2 3  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines