Как sizeof определяет сколько памяти занимает объект?02.09.2020, 00:21. Показов 7686. Ответов 34
Метки нет (Все метки)
В сети смотрел эту тему но смотрю люди не знают тоже.
У меня есть несколько точек зрения по этому поводу. 1. Объект может иметь описатель, но честно говоря создавать описатель ради одного очень дорого. И мне кажется это бред. 2. Возможно оперативная память или память ОС поделена на блоки 1 2 4 8, и при объявлении переменной происходит запрос адреса в нужном типе блока, указатель отодвигается т.к. происходит выделение 1 яч. памяти под переменную(можно сказать что это тоже динамическая автоматическая память), и мы как пользователи используем одну ячейку из такого блока, обращаясь к адресу используя имя переменной и тем самым sizeof который не является функцией заранее знает сколько байт занимает элемент т.к. обращается в блок и смотрит если наличие адреса по имени в блоке имеется то читается описатель блока в котором сказано что все переменные из этого блока по 4 байта к примеру.
0
|
|
| 02.09.2020, 00:21 | |
|
Ответы с готовыми решениями:
34
Как узнать сколько байтов в памяти занимает объект?
Как узнать сколько программа занимает памяти ? |
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 03.09.2020, 02:03 | |
|
0
|
|
|
Вездепух
13241 / 6873 / 1827
Регистрация: 18.10.2014
Сообщений: 17,420
|
|||
| 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
|
|
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,101
|
|
| 06.09.2020, 07:34 | |
|
Напоминает задачу printf, когда надо отобразить неизвестно сколько неизвестно каких переменных. Там для этого используют форматную строку.
0
|
|
|
Модератор
|
||||||||
| 06.09.2020, 08:45 | ||||||||
Вы бы чуть подробнее изложили Ваши предпочтения и технические ограничения, и обсуждение, глядишь, стало бы более продуктивным.
0
|
||||||||
| 06.09.2020, 08:45 | |
|
Как определить сколько памяти занимает список?
Как узнать, сколько байтов памяти занимает массив Как узнать, в процесе отладки, сколько памяти занимает программа? Как узнать сколько памяти занимает таблица и каждый столбец в таблице Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки.
Добавлено:
- Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|