|
1 / 2 / 0
Регистрация: 06.12.2013
Сообщений: 118
|
||||||
Обязательно ли объявлять переменную для хранения адреса переменной как указатель?09.05.2014, 09:12. Показов 3561. Ответов 38
Метки нет (Все метки)
0
|
||||||
| 09.05.2014, 09:12 | |
|
Ответы с готовыми решениями:
38
Как объявлять указатель на массив указателей? Как правильно объявлять указатель на массив указателей? Как правильно объявлять struct переменную? |
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 10.05.2014, 08:18 | |||
|
Добавлено через 8 минут Что касается вопроса в названии темы, переменную для использования в качестве указателя можно декларировать не указательного типа. Но при всяком её использовании понадобится приведение типа: при присваивании ей значения приведение указателя к её типу, а при обращении по адресу явное приведение самой переменной к указателю. Это дополнительные синтаксические сложности, вызванные тем, что единственная сущность, для которой разрешён синтаксис, за которым скрывается необходимая для обращения по адресу косвенная адресация, - это указатель. Всё остальное адрес может только хранить, да и то ровно один тип гарантирует, что в него влезет весь адрес - size_t, остальные могут оказаться пригодными лишь для хранения части адреса, например, приращения в 256-ти байтном параграфе (char и uint8_t при адресации по смещению каждого байта). Добавлено через 1 минуту Тем не менее, часть адреса можно хранить в переменной любого типа, вопрос лишь в том, какую именно часть адреса можно хранить в переменной каждого типа. Можно даже поизвращаться и хранить весь адрес в строке, количество символов которой уравнять с sizeof(size_t). Добавлено через 6 минут
0
|
|||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 10.05.2014, 10:28 | |
|
taras atavin, если сразу не понятно, вот еще пара ссылок:
http://stackoverflow.com/quest... n-practice http://stackoverflow.com/quest... s-intptr-t
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 10.05.2014, 11:27 | ||
|
Эйси.
0
|
||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 10.05.2014, 11:38 | ||
|
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 10.05.2014, 11:46 | |||
|
0
|
|||
|
Заблокирован
|
||
| 10.05.2014, 11:49 | ||
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||
| 10.05.2014, 11:55 | |||||||
0
|
|||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 10.05.2014, 11:58 | |
|
taras atavin, Вы ссылки смотрели, которые я приводил?
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||
| 10.05.2014, 12:04 | |||||||
|
Например,
Добавлено через 1 минуту
0
|
|||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 10.05.2014, 12:34 | |
|
Эйси.
Восходят к временам сегментированных 16-разрядных архитектур например: массив может быть ограничен одним сегментом (так 16-битный size_t будет делать), но вы могли бы несколько сегментов (так 32-битный intptr_t Тип потребуется выбрать сегмент, а также смещение в нем). Я знаю, что эти вещи звучат странно в эти дни равномерно адресуемых несегментированной архитектур, но стандарт должен обслуживать более широкий круг, чем "что это нормально в 2009 году", вы знаете, -!). Где здесь сказано, что size_t не достаточен?
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 10.05.2014, 12:39 | ||
|
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 10.05.2014, 12:55 | |
|
Интересно, как на этой платформе представить размер массива из полуквадриллиона символов? А ведь size_t предназначен для хранения размера и при 128-ми битном виртульном адресе и 50-ти битном адресе физическом на суперкомпьютере с большой физической памятью такой массив может существовать. Для малышей же такие адреса не предназначены.
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||
| 10.05.2014, 15:28 | ||||
|
3.7.4.3 Safely-derived pointers
18.2/6
1
|
||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 14.05.2014, 10:08 | |
|
Если неравенство не верно, то тип не годен и для хранения размера любого возможного массива. Ссылки на то, что в сегментной модели массив должен помещаться в один сегмент, не принимаются, так как на c++ массив-объект может иметь произвольное внутреннее представление, включая связный список, а указатель на следующий элемент списка может включать в себя не только смещение, но и номер сегмента. Кроме того, можно сделать и иерархический массив с применением массивов указателей, также включающих в себя и номера сегментов. Или дерево физических массивов опять таки на таких указателях.
Таким образом, само назначение типов исключает нарушение неравенства за исключением случаев, когда разрядность адреса превышает необходимую для адресации всех байтов любой возможной физической памяти, но именно в таком случае указатель может быть сжат до минимально необходимой разрядности, а я ведь не утверждал, что size_t достаточен для хранения именно не сжатого указателя. Так вот, после сжатия неравенство опять таки станет истинным. Пример же на хранение в size_t не сжатого адреса - это всего лишь пример, звёздочка может быть и в прототипе декодирующей функции.
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 14.05.2014, 12:24 | ||
|
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
| 17.05.2014, 07:15 | ||||||
|
Герберта Шилдта почитай. Он предлагает несколько реализаций разреженного массива и ни одна не непрерывна. Там и линейный список, и массив указателей и даже список указателей на физические подмассивы. Массив, на который наложено подобное обязательное условие, - это массив на чистом c, а не на c++. А на c++, как и на паскале, массив есть контейнер однотипных элементов, адресуемых с помощью индекса, являющегося операндом некоторого применимого к самому массиву оператора. Причём, значения индекса не являются идентификаторами, объявленными в типе самого массива, поэтому
0
|
||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||
| 17.05.2014, 22:14 | ||||||
0
|
||||||
| 17.05.2014, 22:14 | |
|
Помогаю со студенческими работами здесь
39
Объясните как в JSP объявлять и вызывать глобальную переменную??? Сохранение адреса переменной пользовательского класса в переменную типа int или double
Составьте описание типа данных для хранения фамилии, имени, отчества, адреса
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|