Как sizeof определяет сколько памяти занимает объект?02.09.2020, 00:21. Показов 7496. Ответов 34
Метки нет (Все метки)
В сети смотрел эту тему но смотрю люди не знают тоже.
У меня есть несколько точек зрения по этому поводу. 1. Объект может иметь описатель, но честно говоря создавать описатель ради одного очень дорого. И мне кажется это бред. 2. Возможно оперативная память или память ОС поделена на блоки 1 2 4 8, и при объявлении переменной происходит запрос адреса в нужном типе блока, указатель отодвигается т.к. происходит выделение 1 яч. памяти под переменную(можно сказать что это тоже динамическая автоматическая память), и мы как пользователи используем одну ячейку из такого блока, обращаясь к адресу используя имя переменной и тем самым sizeof который не является функцией заранее знает сколько байт занимает элемент т.к. обращается в блок и смотрит если наличие адреса по имени в блоке имеется то читается описатель блока в котором сказано что все переменные из этого блока по 4 байта к примеру.
0
|
|
| 02.09.2020, 00:21 | |
|
Ответы с готовыми решениями:
34
Как узнать сколько байтов в памяти занимает объект?
Как узнать сколько программа занимает памяти ? |
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 03.09.2020, 02:03 | |
|
0
|
|
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
|||
| 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
|
|
|
4070 / 2704 / 433
Регистрация: 09.09.2017
Сообщений: 12,023
|
|
| 06.09.2020, 07:34 | |
|
Напоминает задачу printf, когда надо отобразить неизвестно сколько неизвестно каких переменных. Там для этого используют форматную строку.
0
|
|
|
Модератор
|
||||||||
| 06.09.2020, 08:45 | ||||||||
Вы бы чуть подробнее изложили Ваши предпочтения и технические ограничения, и обсуждение, глядишь, стало бы более продуктивным.
0
|
||||||||
| 06.09.2020, 08:45 | |
|
Как определить сколько памяти занимает список?
Как узнать, сколько байтов памяти занимает массив Как узнать, в процесе отладки, сколько памяти занимает программа? Как узнать сколько памяти занимает таблица и каждый столбец в таблице Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|