Как sizeof определяет сколько памяти занимает объект?02.09.2020, 00:21. Показов 7524. Ответов 34
Метки нет (Все метки)
В сети смотрел эту тему но смотрю люди не знают тоже.
У меня есть несколько точек зрения по этому поводу. 1. Объект может иметь описатель, но честно говоря создавать описатель ради одного очень дорого. И мне кажется это бред. 2. Возможно оперативная память или память ОС поделена на блоки 1 2 4 8, и при объявлении переменной происходит запрос адреса в нужном типе блока, указатель отодвигается т.к. происходит выделение 1 яч. памяти под переменную(можно сказать что это тоже динамическая автоматическая память), и мы как пользователи используем одну ячейку из такого блока, обращаясь к адресу используя имя переменной и тем самым sizeof который не является функцией заранее знает сколько байт занимает элемент т.к. обращается в блок и смотрит если наличие адреса по имени в блоке имеется то читается описатель блока в котором сказано что все переменные из этого блока по 4 байта к примеру.
0
|
|
| 02.09.2020, 00:21 | |
|
Ответы с готовыми решениями:
34
Как узнать сколько байтов в памяти занимает объект?
Как узнать сколько программа занимает памяти ? |
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
|
|
| 03.09.2020, 02:03 | |
|
0
|
|
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,312
|
|||
| 03.09.2020, 02:39 | |||
|
0
|
|||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||||||
| 03.09.2020, 04:48 | |||||||
1
|
|||||||
| 05.09.2020, 22:50 [ТС] | ||
int Pomidor(...) здесь нет типов. Я беру первые 4ре байта и не знаю тип, здесь либо найти заранее через sizeof либо шаблон но его придётся через rainterpret_cast приводить либо регистрировать.Может через лет 10 20ть напишу свою функцию выделения памяти и там перед началом массива буду указывать тип.
0
|
||
|
76 / 68 / 10
Регистрация: 11.07.2016
Сообщений: 320
|
|
| 05.09.2020, 23:35 | |
|
Nexi99, где "здесь"? Ты берёшь непонятные 4 байта, и даже не знаешь откуда? Я слабо представляю, как такое может произойти. Далее, если ты прочитал 4 байта, зачем тебе sizeof? Чтобы узнать, что объём прочитанного - 4 байта? Ну так ты уже это знаешь. Если тебе ничего неизвестно об исходном типе данных в источнике, то у тебя нет никакого достоверного способа (очень формально говоря) аналитически этот тип определить. Смирись.
0
|
|
| 05.09.2020, 23:56 [ТС] | ||
|
0
|
||
|
76 / 68 / 10
Регистрация: 11.07.2016
Сообщений: 320
|
|
| 06.09.2020, 00:27 | |
|
Nexi99, звучит как попытка решить несуществующую проблему. Если знаешь откуда, знаешь и что. Если не знаешь что, то тут наши полномочия всё. Сама идея пересылать какие-то идентификаторы перед данными звучит дико. Просто потому, что если ты знаешь с кем, чем и как ты обмениваешься, то в дополнительных идентификаторах нет нужды, если не знаешь, но знать необходимо - стандартизируй, в остальных случаях это пустая трата памяти, вычислительных ресурсов и пропускной способности канала.
0
|
|
|
4146 / 2724 / 433
Регистрация: 09.09.2017
Сообщений: 12,067
|
|
| 06.09.2020, 07:34 | |
|
Напоминает задачу printf, когда надо отобразить неизвестно сколько неизвестно каких переменных. Там для этого используют форматную строку.
0
|
|
|
Модератор
|
||||||||
| 06.09.2020, 08:45 | ||||||||
Вы бы чуть подробнее изложили Ваши предпочтения и технические ограничения, и обсуждение, глядишь, стало бы более продуктивным.
0
|
||||||||
| 06.09.2020, 08:45 | |
|
Как определить сколько памяти занимает список?
Как узнать, сколько байтов памяти занимает массив Как узнать, в процесе отладки, сколько памяти занимает программа? Как узнать сколько памяти занимает таблица и каждый столбец в таблице Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|