|
-342 / 1 / 0
Регистрация: 27.12.2025
Сообщений: 29
|
|
Неинициализированные указатели14.04.2026, 17:27. Показов 11691. Ответов 130
Метки нет (Все метки)
Подскажите пожалуйста, если использование неинициализированных указателей в С++ сопряжено с рисками неопределённого поведения и случайного доступа к памяти, то для каких целей в языке оставлена возможность объявления неинициализированных указателей?
0
|
|
| 14.04.2026, 17:27 | |
|
Ответы с готовыми решениями:
130
Неинициализированные локальные переменные Неинициализированные переменные Неинициализированные локальные переменные warning C4700 |
|
392 / 337 / 66
Регистрация: 14.10.2014
Сообщений: 1,538
|
|
| 15.04.2026, 10:12 | |
|
ух ё...
думал тема уже закрыта, ан нет - на четыре страницы наклепали, всю ночь сидели ![]() Везучие - у вас похоже времени свободного дохрена
0
|
|
| 15.04.2026, 11:11 | ||
|
И Вы совершенно напрасно подаете это как "глубокое знание плюсов, нюансов" . К знанию/пониманию языка эти мелкие технические детали отношения не имеют
0
|
||
|
фрилансер
6510 / 5772 / 1135
Регистрация: 11.10.2019
Сообщений: 15,418
|
|
| 15.04.2026, 11:50 | |
|
Recrut_rf, не всё ж на диване разлагаться, вот, решили с обычным троллем пообщаться
1
|
|
|
Заблокирован
|
|
| 15.04.2026, 12:06 | |
|
0
|
|
|
640 / 398 / 68
Регистрация: 09.03.2016
Сообщений: 4,409
|
||
| 15.04.2026, 12:29 | ||
|
0
|
||
|
Заблокирован
|
||
| 15.04.2026, 13:06 | ||
|
Компиляторы которые генерируют код по стандарту - плохие. Проявление UB которое меня устраивает и вмещается в мои хотелки - это отличные компиляторы, все остальные - кривые. ![]() Астанавитесь.
0
|
||
|
Вездепух
13238 / 6870 / 1827
Регистрация: 18.10.2014
Сообщений: 17,415
|
||
| 15.04.2026, 16:48 | ||
|
Если код производит UB, то в нем по определению ничего не "юзается" и не "печатается". Все эти "юзается(печатается)" - это плод вашего разгулявшегося воображения, фантазии, призванные заполнить непонимание основ языка. Компилятору, разумеется, эти фантазии не известны и не интересны. Так что - да, должен выкидывать. И выкидывает. И, как хорошо видно по прогрессу версий того же Clang, будет выкидывать все больше, больше и больше.
0
|
||
| 15.04.2026, 18:09 | ||
, а я просто руководствуюсь здравым смыслом. Выходит код компилируется, но .. не выполняется, причем без всяких exception(s). То есть поставил тестовую печать, а ее .. нету. Выкинули. Бред собачий. Такой придурковатый компилятор никому не нужен. Более реалистично считать неинициализированное значение нулем или др дефаултом. Это возможно, подобное где-то видел. Но уж никак не "выкидывать"
0
|
||
| 15.04.2026, 18:11 | |
|
Не по теме: они размножаются о_О
0
|
|
|
640 / 398 / 68
Регистрация: 09.03.2016
Сообщений: 4,409
|
|
| 16.04.2026, 14:10 | |
|
TheCalligrapher,
Прочитал ваш экскурс. А мне почему то враги запрещают читать неинициализированные переменные. Мелкомягкие в натуре враги... Проклятые империалисты...
0
|
|
| 16.04.2026, 16:20 | |||||||
|
Не по теме:
А поднять Предупреждения до Ошибок можно в любом компиляторе. Вероятно в настройках проекта по умолчанию стоит опция SDL checks, которая и бьёт по лапкам. Update: Только это опция для "инвалидов". И никак не помешает отстрелить себе всё что нужно.
0
|
|||||||
|
1121 / 992 / 153
Регистрация: 10.08.2015
Сообщений: 5,449
|
|
| 16.04.2026, 17:40 | |
|
Вся эта тема бестолковая
Объявить массив как указатель на 1й элемент Выделить память на n элементов Заполнить массив значениями Обработать массив, как надо Когда уже не надо, отдать память обратно Конец Нечего заниматься словоблудием и рукоблудием Пиши простой код, долб*** (KISS)
0
|
|
|
640 / 398 / 68
Регистрация: 09.03.2016
Сообщений: 4,409
|
|
| 17.04.2026, 00:28 | |
|
Как он может мне запретить.. Хочу читать много переменных.... И что бы неиници.,. Былы... Запутался.
0
|
|
|
640 / 398 / 68
Регистрация: 09.03.2016
Сообщений: 4,409
|
|
| 17.04.2026, 00:35 | |
|
0
|
|
|
-342 / 1 / 0
Регистрация: 27.12.2025
Сообщений: 29
|
|
| 17.04.2026, 11:00 [ТС] | |
|
Что Данила-мастер не выходит каменный цветочек?
![]() Добавлено через 58 минут Моё видение процессов протекающих при объявлении неинциализированных указателей, ну и переменных до кучи (не претендую на истину в конечной инстанции, пытаюсь разобраться для себя). При компиляции программы с с вышеуказанными объявлениями компилятор (если в нём отключены оптимизирующие режимы) что для указателя, что для переменной рандомно цепляет адрес памяти в куче (объявление внутри функции я не рассматриваю так как там память выделяется на стеке а не в куче, хотя и там ситуация может быть аналогичноя). В рандомно выделенной области памяти что-то уже лежит (или "мусор" или данные используемые какой-то программой или операционной системой, хотя скорее всего оп защищает свои данные так как компилятор по идее запрашивает память именно у оп). При попытке использования неинциализированного указателя или переменной (попытки перезаписи в сопряженные с ними участки памяти новых значений) возникает ситуация пресловутого UB. Если в памяти лежит "мусор", то ничего критического не происходит и всё работает должным образом, а вот если в памяти находятся используемые программами или оп данные, то при их перезаписи может произойти всё что угодно (UB). Так как синтаксис языка позволяет вначале объявить указатель или переменную без инициализации, а присваивать им значения позднее, то это вынуждает компилятор присваивать им адреса в памяти при компиляции (любой объект по определению должен иметь адрес в памяти). Так как подобная ситуация порождает UB разработчики компиляторов пытаются купировать его возникновение. Один из способов выдавать ошибку при компиляции с определенными ключами компиляции, другой принудительно инициировать их нулём (как в приведенном выше примере Наталья8).
0
|
|
|
640 / 398 / 68
Регистрация: 09.03.2016
Сообщений: 4,409
|
|
| 17.04.2026, 12:38 | |
|
0
|
|
|
6702 / 3123 / 1064
Регистрация: 01.06.2021
Сообщений: 12,082
|
|
| 17.04.2026, 12:44 | |
|
Наталья8, ты почему C::B не обновляешь? Уже ж давно есть версия 25.03. А ещё лучше, ставь ночную сборку. Например, билд 13831 вышел совсем недавно, 9 апреля. Они там постоянно что-то фиксят. Полтора разраба осталось, но если на них надавить, то профиксят любой баг. Сам я много раз репортил.
0
|
|
| 17.04.2026, 13:56 | |
|
0
|
|
|
640 / 398 / 68
Регистрация: 09.03.2016
Сообщений: 4,409
|
|
| 17.04.2026, 14:40 | |
|
Royal_X,
Что то тебя видно не было.... Кодеблок? Да не пишу я на нём.. Просто валяеться. Думаешь они на новой версии более стабильным его сделали? Добавлено через 6 минут 4blK4blPblK, Да ну... Таких длинных измышлений, умозаключений (многобукоф), что то я давно не видел.
0
|
|
|
фрилансер
6510 / 5772 / 1135
Регистрация: 11.10.2019
Сообщений: 15,418
|
|
| 17.04.2026, 14:54 | |
|
Also what, какое странное видение. Даже спустя 4 страницы объяснений
Добавлено через 5 минут Also what, поздравляю с ачивкой. Когда спокойнейший и терпеливейший обитатель форума вкатывает жирный минус - это достижение, я считаю
0
|
|
| 17.04.2026, 14:54 | |
|
Ошибка, указывающая на неинициализированные переменные Ошибка: неинициализированные переменные Неинициализированные переменные
Указатели и указатели на указатели, а также типы данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|