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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kamuniaft
0 / 0 / 0
Регистрация: 16.04.2013
Сообщений: 3
#1

Массивы в памяти - C++

21.04.2013, 16:49. Просмотров 224. Ответов 2
Метки нет (Все метки)

Помогите прояснить один момент! Определяем в программе

C++
1
2
3
4
int ar1[10];
char c;
int ar2[10];
int* ptr;
Смотрю адреса ( к примеру) ptr: 7548; ar2:7560; c:7611; ar1: 7620;
Размер каждого массива по 40 байт, указателя 4 и чара 1.

Собственно вопрос - куда девается место между переменными? Разве компилятор их в память не подряд записывает (в случае когда они в одном блоке определены)?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2013, 16:49     Массивы в памяти
Посмотрите здесь:

Одномерные массивы в памяти ЭВМ - C++
Здравствуйте! У меня такой вопрос на тему массивов в С++. Задали массив: int a; - выделили память под 5 элементов, т.е 20 байт, int a =...

Динамическое выделение памяти, массивы - C++
Напишите программу, которая динамически выделяет память для переменной типа float, инициализируемого значением 3,0 и для массива из 15...

Динамические массивы и освобождение памяти - C++
Здравствуйте, подскажите мне пожалуйста, правильно ли я освободил память, которая была занята массивом.. И почему, когда я вызываю...

Выделение памяти под массивы - C++
int **mas1 = new int*; for (int e = 0; e < q; e++) mas1 = new int; int **mas2 = new int*; for (int q = 0; q < e;...

Массивы, адресация, дин. исп памяти - C++
Задача:Заданы два массива А(5) и В(5). Подсчитать в них количество положительных элементов и первым на печать вывести массив, имеющий...

Динамические массивы и экстремум выделенной памяти - C++
Как работают всякие vector'ы? Выделяют память под (допустим) 100 элементов, при достижении этого числа, выделяют новый блок памяти на 200...

Как расположены в памяти массивы структур? - C++
Допустим, есть такой массив структур struct Man { int year; int number; std::string name; } Men; Массив - это...

Массивы и строки char + освобождение памяти - C++
Не понимаю когда нужно освобождать память когда нет? Когда пользоваться delete если я объявляю char *Name=new char; ему...

Двумерные массивы. Использование динамически распределяемой памяти - C++
Уважаемые форумчане, опять нужны ваши подсказки Условие: Создать квадратную матрицу целых чисел и выполнить ее обработку согласно...

Динамические массивы структур и выделение (перевыделение) памяти - C++
Здравствуйте. Делаю систему обновления. С ftp и unicode разобрался. теперь встала проблема с сылками и размерностями массивов. В общем есть...

Динамические массивы с подряд идущими элементами в памяти - C++
Здравствуйте. Помогите разобраться, пожалуйста, с динамическими двумерными массивами. Если я объявлю двумерный массив следующим...

Двумерные динамические массивы-матрицы (выделение памяти) - C++
Помогите пожалуйста,разобраться. В динамической памяти сначала выделяется память для указателей на соответствующие двумерные массивы(строки...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hommius
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 12
21.04.2013, 16:57     Массивы в памяти #2
Цитата Сообщение от Kamuniaft Посмотреть сообщение
Разве компилятор их в память не подряд записывает
Нет, да и не должен. Какой участок памяти ОС даст - в тот и записывается.
stima
449 / 298 / 20
Регистрация: 22.03.2011
Сообщений: 966
Завершенные тесты: 2
21.04.2013, 16:59     Массивы в памяти #3
Вы не правильно привели пример. Но, да такое поведение нормально. Компилятор записывает подряд но при этом выравнивает память. Почитайте про выравнивание, там не много и не сложно.

Добавлено через 1 минуту
Цитата Сообщение от hommius Посмотреть сообщение
Разве компилятор их в память не подряд записывает
Нет, да и не должен. Какой участок памяти ОС даст - в тот и записывается.
Вы не правы. Вернее не совсем. Смотря какая память. В данном случае это кадр стека. Он записуеться подряд.
Yandex
Объявления
21.04.2013, 16:59     Массивы в памяти
Ответ Создать тему
Опции темы

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