Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
pianist
0 / 0 / 1
Регистрация: 12.06.2012
Сообщений: 56
#1

Блоки памяти - C++

06.07.2012, 19:57. Просмотров 385. Ответов 6
Метки нет (Все метки)

такая ситуация:
выделяю память под массив интов, но пишу там не везеде, в некоторых местах дефолтная "грязь". Потом скидываю это дело на диск в бинарный файл. вижулстудия умеет показывать hex и выводит везде, где грязь CD но курсивно, а не как обычный hex. возникает вопрос: как понять где грязь мне? (точнее как это делает вижулстудия)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2012, 19:57
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Блоки памяти (C++):

Пакетированные стандартные блоки - Вложенные стандартные блоки
Кто нибудь может объяснить на примере кода С, как это выглядит?

Выделить в памяти 1024 ячейки по 8 байт и вывести их адреса(МИНИ менеджер памяти))
Вот тут появилась такая интересная задача: требуется сделать программу которая...

Можно ли разместить переменную в нужную ячейку памяти и реально ли хранить данные, разбросанными по памяти?
Добрый день. Не могу найти информацию по двум вопросам : 1) могу ли я...

Резервирование памяти/освобождение памяти для трехмерного массива
Необходимо создать трехмерный массив (A), в котором элементы вдоль направления...

Разработка программы обмена местами двух целочисленных ячеек памяти без использования дополнительной памяти
Разработка программы обмена местами двух целочисленных ячеек памяти без...

Выделение памяти, проверка на утечку памяти
Интересуют два вопроса: 1. Правильно ли устроен алгоритм выделения, удаление...

6
Root2x
12 / 12 / 2
Регистрация: 21.05.2012
Сообщений: 52
06.07.2012, 21:52 #2
Инициализируй массив нулями, и не нужно будет ничего выяснять.
0
Avazart
Эксперт С++
7683 / 5592 / 543
Регистрация: 10.12.2010
Сообщений: 25,073
Записей в блоге: 17
06.07.2012, 22:27 #3
Это правило хорошего тона- объявив переменную не забыть её проинициализировать (тобиш сразу)
0
pianist
0 / 0 / 1
Регистрация: 12.06.2012
Сообщений: 56
09.07.2012, 11:37  [ТС] #4
блин, ребята, я не спрашивал, что мне делать, что бы этого не было, а спросил КАК ЭТО ПОНЯТЬ
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
09.07.2012, 12:08 #5
Лучший ответ Сообщение было отмечено как решение

Решение

Вот идёшь ты по улице, а тебе на голову серанул голубь. Ты поднимаешь к небу кулак и кричишь "КАК ЭТО ПОНЯТЬ?!!!"... А понимать тут нечего. Не хочешь, чтобы тебе гадили на голову - не ходи под голубями. Не хочешь "мусор", инициализируй данные. RAII никто не отменял.
3
CheshireCat
Эксперт С++
2907 / 1256 / 114
Регистрация: 27.05.2008
Сообщений: 3,451
09.07.2012, 12:21 #6
Цитата Сообщение от pianist Посмотреть сообщение
вижулстудия умеет показывать hex и выводит везде, где грязь CD но курсивно, а не как обычный hex.
Такое поведение VS характерно для режима Debug: все неинициализированные переменные заполняются "магическим числом" 0xCD. Именно для того, чтобы программист мог в отладчике посмотреть, что переменная - не инициализирована. Студия определяет это именно анализом байтов переменной на 0xCD.

Обрати внимание: в Release Студия ничего этого делать не будет!! В релизе где была случайная грязь - она там же той же случайной грязью и останется.
1
Case-Man
167 / 107 / 22
Регистрация: 02.01.2012
Сообщений: 596
09.07.2012, 12:26 #7
Просто студия в отладочном режиме весь мусор всегда инициализирует этим самым 0xCD.

Добавлено через 36 секунд
Опередили..
1
09.07.2012, 12:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2012, 12:26
Привет! Вот еще темы с решениями:

Утечки памяти без выделения памяти?
Человек использует _CrtDumpMemoryLeaks() для отлова утечек, и обратился ко мне...

Распределение памяти. Динамическое выделение памяти
an-1 an-2 ... a2

Ссылки и блоки
Еще один странный вопрос. Почему int i = 3; int& a = i; ...

Два шаблона. Блоки исключений
Очень простая идея: 1. Есть два темплейта Stack and Array 2. и типа все как...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru