|
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
|
|||||||||||
Как происходит процесс выделения памяти в стеке и куче16.01.2014, 14:46. Показов 8207. Ответов 48
Метки нет (Все метки)
писал sizeof для каждого объекта и получил что d1=56 байта (тут вроде 3 chara 20+20+10+ 1 int=4 байтам=54 байта, куда выделяются еще 2 байта?) d2=112 байта (ну тут понятно, что записей в массиве 2, 56+56=112) d3=4 байта (тут 4 байта при записи sizeof(d3)-т.е. на каждое поле класса, их всего 4 выделяется по 1 байту?) (а если написать sizeof(*d3) то будет снова 56 байт d4=4 байта (тут аналогично) Объясните пожалуйста, как происходит процесс выделения памяти в стеке и куче, ну и про кол-во байтов на объекты класса. Все это делаю в C++ Builder 6
0
|
|||||||||||
| 16.01.2014, 14:46 | |
|
Ответы с готовыми решениями:
48
Как автоматизировать такой процесс выделения памяти? Как происходит процесс распределения памяти(для процессов) на уровне ядра
|
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
| 16.01.2014, 19:35 | |
|
0
|
|
|
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
|
||
| 16.01.2014, 19:51 [ТС] | ||
|
Добавлено через 2 минуты Мм забыл про выравнивание.... Немного потестил сколько выделяется памяти на выравнивание типа int,double,long double 1) при int выделяется 2 байта на вырав. 2) при double 6 байт 3) при long double 12 байтов Искал инфу про выравнивание написанное доступным языком, толкового не нашел. Может кто знает, расскажите пожалуйста
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||||||||||||||||
| 16.01.2014, 20:11 | ||||||||||||||||
|
в таком коде
таких как Intel 8051 или Atmega8535 если ответят в стеке то можешь смело их посылать....... учится нет там таких размеров стеков, в регистрах будут размешатся и даже всеми любимяй 80х86 может спокойно расположить локальную переменную не в стеке а в регистрах так что эти извраты не приведут тебя к пониманию Добавлено через 7 минут выравнивание удобно процессору чтобы быстрее иметь доступ так 8 битные процессоры будут выравнивать на на границу байта( отсутствует выравнивание) 16 битные на границу двух байтов 32 битные на границу четырех байтов 64 битные на границу 8 байтов так адреса в структуре
для 8 битного c 0х00; i 0х01; для 16 битного c 0х00; i 0х02; для 32 битного c 0х00; i 0х04; для 64 битного c 0х00; i 0х08; не знаю понятно ли объяснил? Добавлено через 6 минут размер int чаще всего привязан к разрядности процессора для проверки размера существует sizeof возвращает размер в байтах но никакого отношения размер переменных к выравниванию не имеет
1
|
||||||||||||||||
|
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
|
||
| 16.01.2014, 20:15 [ТС] | ||
|
Залил картинку настроек билдера своего, я так понимаю то, что я выделил и есть настройка выравнивания?
мля ссылку не хочет вставлять. Data aligment-> Quad word это выравнивание? Добавлено через 3 минуты
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||
| 16.01.2014, 20:15 | ||
|
расширенный режим значок скрепки правда я в Билдере не очень последний раз общался с продукцией Borland еще под DOS на BC3.1
0
|
||
| 16.01.2014, 20:16 | |
|
0
|
|
|
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
|
|
| 16.01.2014, 20:18 [ТС] | |
|
0
|
|
|
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
|
|
| 16.01.2014, 20:27 [ТС] | |
|
Byte — 8 бит
Word — 16 бит Double Word — 32 бит Quad Word — 64 бит Octa Word — 128 бит
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||||||||
| 16.01.2014, 20:31 | ||||||||
|
и программа то эта?
Lers, судя по картинке у тебя выравнивание на 8 бит ( счетвереннное слово, а слово это два байта)
0
|
||||||||
|
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
|
|
| 16.01.2014, 20:36 [ТС] | |
|
ValeryS, да класс этот, sizeof и проверял.
т.е. 3 char,1 int =56 3 char, 1 long double=72 3 char, 1 double=64 Добавлено через 53 секунды может на 8 байт? Добавлено через 2 минуты а может быть такое, что билдер растягивает размер для того чтобы размер был кратен 8 ( т.е. выравниванию)
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||||||||
| 16.01.2014, 20:49 | ||||||||
|
только к каждому элементы структуры например 24+24+16+8=72 мдя чтото я общитался 20+20+10(+2 выравнивания)+4=56 хотя я привожу расчеты по опыту работы с микрософт а как Борланд выравнивает не знаю
1
|
||||||||
|
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
|
|
| 16.01.2014, 20:53 [ТС] | |
|
Всем большое спасибо за помощь! С выравниванием большое спасибо, разобрался, а про борланд сам поищу, может найду правду!
0
|
|
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||
| 16.01.2014, 20:59 | ||
|
0
|
||
|
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
|
|||||||
| 16.01.2014, 21:20 [ТС] | |||||||
|
затестил с выравниванием по байту, действительно не увеличивает размер
0
|
|||||||
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
| 16.01.2014, 21:22 | |
|
0
|
|
|
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
|
|
| 16.01.2014, 21:24 [ТС] | |
|
0
|
|
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||
| 16.01.2014, 21:56 | ||
|
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||
| 16.01.2014, 22:00 | ||
|
указатель то хоть размер указателя даст а размер объекта кто? придется размер структуры( класса) высчитывать sizeof (Disc) а сколько памяти под этот объект выделится одному менеджеру известно Добавлено через 1 минуту Lers, введи код который я привел и увидишь как в зависимости от выравнивания будут размещаться поля
0
|
||
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
| 16.01.2014, 22:08 | |
|
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||
| 16.01.2014, 22:11 | ||
|
у меня сейчас нет компилятора под рукой но помню что пытался считать размер массива ничего не получилось, приходилось запоминать с объектами может быть тоже самое, а может и нет
0
|
||
| 16.01.2014, 22:11 | |
|
Расположение данных в стеке и в куче
Интерфейс хранится в стеке или в куче? Создание QApplication на стеке или в куче Несколько моментов про хранение в куче и в стеке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|