|
12 / 12 / 2
Регистрация: 23.01.2013
Сообщений: 143
|
|
универсальный указатель24.02.2013, 22:46. Показов 3918. Ответов 38
Метки нет (Все метки)
Добрый вечер.
Можно ли создать шаблон, что бы не приводить явно универсальный указатель к определенному типу при разыменовании? Или по крайней мене узнать тип (размер) данных которые хранятся по указанному адресу?
0
|
|
| 24.02.2013, 22:46 | |
|
Ответы с готовыми решениями:
38
Универсальный указатель или универсальный скалярный тип
универсальный указатель |
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||
| 25.02.2013, 02:59 | ||
|
0
|
||
|
|
||
| 25.02.2013, 04:33 | ||
|
Вот стоит перед тобой задача заполнить N байт по адресу 0x00ABCDEF значениями 0x01 Разве memset для такой задачи не подходит лучше всего?
1
|
||
|
~ Эврика! ~
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
| 25.02.2013, 10:35 | |
Сообщение было отмечено как решение
Решение
Мультипарадигменность — не разрешение делать что угодно. Любой язык общего назначения при должном возрасте становится мультипарадигменным.
Немного помесить память с помощью memset() — это именно что уникальный случай. Если это надо делать часто, то возникает вопрос, зачем вам вообще Плюсы и не перекроет ли оверхед Плюсов все выгоды от memset(). Но вот использовать qsort() в плюсовом коде — это как прийти на автозавод и обнаружить, что всё собирается на конвейере, но дырку под лобое стекло самолично выпиливает безопилой дядя Вася. Это работает, Вася виртуозен и делает всё правильно, вовремя и не отрезает себе ноги, но у инспектора по технике безопасности глаза на лоб полезут и он сразу побежит спрашивать инженеров: "На кой хрен, если у вас тут безопасных механизмов с автоматическим контролем хоть ложкой ешь?" И ведь действительно, на кой хрен? Только потому, что кто-то хорошо знает дядю Васю и поленился настроить ещё один автомат?
4
|
|
|
12 / 12 / 2
Регистрация: 23.01.2013
Сообщений: 143
|
|
| 26.02.2013, 15:26 [ТС] | |
|
Что бы не создавать новую тему дополню вопрос тут, тем более что он связан с темой топика...
Архитектура машины (разрядность), определяет не только общий объем памяти, но и размер ячейки памяти? К примеру long long доступно только на 64 разрядной платформе (не зависимо от системы)? Если для хранения переменной нам достаточно, к примеру, 1-2 байта, как выставлены остальные?
0
|
|
|
~ Эврика! ~
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
||||
| 26.02.2013, 23:48 | ||||
|
1
|
||||
|
12 / 12 / 2
Регистрация: 23.01.2013
Сообщений: 143
|
||||||||||||
| 27.02.2013, 01:38 [ТС] | ||||||||||||
Возможно вопросы примитивные, но нагуглить что-то стоящее тяжело... Добавлено через 30 минут Работу с память, в следующем примере, рассматриваю как "черный ящик":
-859045887 (111111111111111111111111111111111100110 0110011000000000000000001) -858993663 (111111111111111111111111111111111100110 0110011001100110000000001) Вывод программы в двоичной системе отличается в один байт... Вот и решил что так и хранится переменная в памяти...
0
|
||||||||||||
|
|
|
| 27.02.2013, 02:05 | |
|
ты уже вообще перемудрил чего-то. Не воспринимай это дело так серьёзно. При чём здесь вообще указатели в твоём примере?
char занимает 1 байт, int - 4 ты присвоил значение 1 байту по адресу &a а вывел значение 4х байт по этому адресу. естесственно, все они кроме младшего - случайно оказавшиеся в памяти числа (ну, может не совсем случайно, но к твоим переменным отношение не имеют, они просто за ними стояли.)
0
|
|
|
~ Эврика! ~
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
||||
| 27.02.2013, 02:44 | ||||
|
$4 — а вот это просто число 4.
0
|
||||
|
12 / 12 / 2
Регистрация: 23.01.2013
Сообщений: 143
|
|||||||
| 27.02.2013, 13:13 [ТС] | |||||||
-13108 (111111111111111111111111111111111111111 111111111 1100 1100 1100 1100) -858993460 (11111111111111111111111111111111 1100 1100 1100 1100 1100 1100 1100 1100) Добавлено через 21 минуту К чему это все я? Получается что из за наличия "мусора" в памяти, можно программно определить тип переменных которые находятся в ячейке, на которую указывает указатель типа void*? По крайней мере для без знаковых переменных...
0
|
|||||||
|
12 / 12 / 2
Регистрация: 23.01.2013
Сообщений: 143
|
||||||
| 27.02.2013, 14:14 [ТС] | ||||||
|
И вот что еще у меня получилось:
Интересно было бы увидеть еще машинный код...
0
|
||||||
|
12 / 12 / 2
Регистрация: 23.01.2013
Сообщений: 143
|
||
| 27.02.2013, 14:25 [ТС] | ||
|
Причем в двоичной форме старшие биты будут иметь одинаковый вид...
0
|
||
|
|
||
| 27.02.2013, 21:39 | ||
|
В чём суть вопроса то?
0
|
||
|
419 / 418 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
|
|
| 27.02.2013, 23:39 | |
|
Вообще-то внутренний формат хранения данных зависит от архитектуры, и здесь правильно указали, что для большинства минимальной единицей является 1 байт + порядок байт (little или big endian) + размер переменных зависит от архитектуры и оси тоже. И вывод вашей программы у меня
./a.out вывод: 0 0 и что мы тут будем ловить? Добавлено через 2 минуты ну и ошибка к последнему коду trashh_cpp/main.cpp:7:29: error: cast from ‘int*’ to ‘int’ loses precision [-fpermissive]
0
|
|
|
12 / 12 / 2
Регистрация: 23.01.2013
Сообщений: 143
|
||
| 02.03.2013, 00:09 [ТС] | ||
|
Но все же всем спасибо за ответы, по ходу прояснил себе некоторые моменты...
0
|
||
|
~ Эврика! ~
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
| 02.03.2013, 00:56 | |
|
Ну почему сразу нельзя. Можно. Если вы сами рядом с ячейкой положите этот тип. И будете его обновлять при присваиваниях. Но да, конечно, всё это под честное слово, что там будет действительно лежать тип, а не мусор.
0
|
|
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
| 02.03.2013, 02:18 | |
|
Это как брать черные коробки и подписывать что в них есть, а потом в одной из них будет лежать бомба, а написано "любимой маме на 8 марта"
0
|
|
| 02.03.2013, 02:18 | |
|
Специализация и обобщение в С++ через универсальный указатель
Как получить ссылку на указатель или указатель на указатель в массиве?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Книги по геймдизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
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. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|