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

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

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

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

21.04.2013, 16:49. Просмотров 234. Ответов 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.

Собственно вопрос - куда девается место между переменными? Разве компилятор их в память не подряд записывает (в случае когда они в одном блоке определены)?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2013, 16:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массивы в памяти (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++
Здравствуйте, подскажите мне пожалуйста, правильно ли я освободил память, которая была занята массивом.. И почему, когда я вызываю...

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

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

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

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

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

Добавлено через 1 минуту
Цитата Сообщение от hommius Посмотреть сообщение
Разве компилятор их в память не подряд записывает
Нет, да и не должен. Какой участок памяти ОС даст - в тот и записывается.
Вы не правы. Вернее не совсем. Смотря какая память. В данном случае это кадр стека. Он записуеться подряд.
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2013, 16:59
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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