|
-342 / 1 / 0
Регистрация: 27.12.2025
Сообщений: 29
|
|
Неинициализированные указатели14.04.2026, 17:27. Показов 9191. Ответов 130
Метки нет (Все метки)
Подскажите пожалуйста, если использование неинициализированных указателей в С++ сопряжено с рисками неопределённого поведения и случайного доступа к памяти, то для каких целей в языке оставлена возможность объявления неинициализированных указателей?
0
|
|
| 14.04.2026, 17:27 | |
|
Ответы с готовыми решениями:
130
Неинициализированные локальные переменные Неинициализированные переменные Неинициализированные локальные переменные warning C4700 |
|
389 / 334 / 66
Регистрация: 14.10.2014
Сообщений: 1,475
|
|
| 15.04.2026, 10:12 | |
|
ух ё...
думал тема уже закрыта, ан нет - на четыре страницы наклепали, всю ночь сидели ![]() Везучие - у вас похоже времени свободного дохрена
0
|
|
| 15.04.2026, 11:11 | ||
|
И Вы совершенно напрасно подаете это как "глубокое знание плюсов, нюансов" . К знанию/пониманию языка эти мелкие технические детали отношения не имеют
0
|
||
|
фрилансер
6496 / 5727 / 1133
Регистрация: 11.10.2019
Сообщений: 15,289
|
|
| 15.04.2026, 11:50 | |
|
Recrut_rf, не всё ж на диване разлагаться, вот, решили с обычным троллем пообщаться
1
|
|
|
Заблокирован
|
|
| 15.04.2026, 12:06 | |
|
0
|
|
|
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,242
|
||
| 15.04.2026, 12:29 | ||
|
0
|
||
|
Заблокирован
|
||
| 15.04.2026, 13:06 | ||
|
Компиляторы которые генерируют код по стандарту - плохие. Проявление UB которое меня устраивает и вмещается в мои хотелки - это отличные компиляторы, все остальные - кривые. ![]() Астанавитесь.
0
|
||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,308
|
||
| 15.04.2026, 16:48 | ||
|
Если код производит UB, то в нем по определению ничего не "юзается" и не "печатается". Все эти "юзается(печатается)" - это плод вашего разгулявшегося воображения, фантазии, призванные заполнить непонимание основ языка. Компилятору, разумеется, эти фантазии не известны и не интересны. Так что - да, должен выкидывать. И выкидывает. И, как хорошо видно по прогрессу версий того же Clang, будет выкидывать все больше, больше и больше.
0
|
||
| 15.04.2026, 18:09 | ||
, а я просто руководствуюсь здравым смыслом. Выходит код компилируется, но .. не выполняется, причем без всяких exception(s). То есть поставил тестовую печать, а ее .. нету. Выкинули. Бред собачий. Такой придурковатый компилятор никому не нужен. Более реалистично считать неинициализированное значение нулем или др дефаултом. Это возможно, подобное где-то видел. Но уж никак не "выкидывать"
0
|
||
| 15.04.2026, 18:11 | |
|
Не по теме: они размножаются о_О
0
|
|
|
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,242
|
|
| 16.04.2026, 14:10 | |
|
TheCalligrapher,
Прочитал ваш экскурс. А мне почему то враги запрещают читать неинициализированные переменные. Мелкомягкие в натуре враги... Проклятые империалисты...
0
|
|
| 16.04.2026, 16:20 | |||||||
|
Не по теме:
А поднять Предупреждения до Ошибок можно в любом компиляторе. Вероятно в настройках проекта по умолчанию стоит опция SDL checks, которая и бьёт по лапкам. Update: Только это опция для "инвалидов". И никак не помешает отстрелить себе всё что нужно.
0
|
|||||||
|
1070 / 991 / 153
Регистрация: 10.08.2015
Сообщений: 5,416
|
|
| 16.04.2026, 17:40 | |
|
Вся эта тема бестолковая
Объявить массив как указатель на 1й элемент Выделить память на n элементов Заполнить массив значениями Обработать массив, как надо Когда уже не надо, отдать память обратно Конец Нечего заниматься словоблудием и рукоблудием Пиши простой код, долб*** (KISS)
0
|
|
|
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,242
|
|
| 17.04.2026, 00:28 | |
|
Как он может мне запретить.. Хочу читать много переменных.... И что бы неиници.,. Былы... Запутался.
0
|
|
|
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,242
|
|
| 17.04.2026, 00:35 | |
|
0
|
|
|
-342 / 1 / 0
Регистрация: 27.12.2025
Сообщений: 29
|
|
| 17.04.2026, 11:00 [ТС] | |
|
Что Данила-мастер не выходит каменный цветочек?
![]() Добавлено через 58 минут Моё видение процессов протекающих при объявлении неинциализированных указателей, ну и переменных до кучи (не претендую на истину в конечной инстанции, пытаюсь разобраться для себя). При компиляции программы с с вышеуказанными объявлениями компилятор (если в нём отключены оптимизирующие режимы) что для указателя, что для переменной рандомно цепляет адрес памяти в куче (объявление внутри функции я не рассматриваю так как там память выделяется на стеке а не в куче, хотя и там ситуация может быть аналогичноя). В рандомно выделенной области памяти что-то уже лежит (или "мусор" или данные используемые какой-то программой или операционной системой, хотя скорее всего оп защищает свои данные так как компилятор по идее запрашивает память именно у оп). При попытке использования неинциализированного указателя или переменной (попытки перезаписи в сопряженные с ними участки памяти новых значений) возникает ситуация пресловутого UB. Если в памяти лежит "мусор", то ничего критического не происходит и всё работает должным образом, а вот если в памяти находятся используемые программами или оп данные, то при их перезаписи может произойти всё что угодно (UB). Так как синтаксис языка позволяет вначале объявить указатель или переменную без инициализации, а присваивать им значения позднее, то это вынуждает компилятор присваивать им адреса в памяти при компиляции (любой объект по определению должен иметь адрес в памяти). Так как подобная ситуация порождает UB разработчики компиляторов пытаются купировать его возникновение. Один из способов выдавать ошибку при компиляции с определенными ключами компиляции, другой принудительно инициировать их нулём (как в приведенном выше примере Наталья8).
0
|
|
|
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,242
|
|
| 17.04.2026, 12:38 | |
|
0
|
|
|
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
|
|
| 17.04.2026, 12:44 | |
|
Наталья8, ты почему C::B не обновляешь? Уже ж давно есть версия 25.03. А ещё лучше, ставь ночную сборку. Например, билд 13831 вышел совсем недавно, 9 апреля. Они там постоянно что-то фиксят. Полтора разраба осталось, но если на них надавить, то профиксят любой баг. Сам я много раз репортил.
0
|
|
| 17.04.2026, 13:56 | |
|
0
|
|
|
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,242
|
|
| 17.04.2026, 14:40 | |
|
Royal_X,
Что то тебя видно не было.... Кодеблок? Да не пишу я на нём.. Просто валяеться. Думаешь они на новой версии более стабильным его сделали? Добавлено через 6 минут 4blK4blPblK, Да ну... Таких длинных измышлений, умозаключений (многобукоф), что то я давно не видел.
0
|
|
|
фрилансер
6496 / 5727 / 1133
Регистрация: 11.10.2019
Сообщений: 15,289
|
|
| 17.04.2026, 14:54 | |
|
Also what, какое странное видение. Даже спустя 4 страницы объяснений
Добавлено через 5 минут Also what, поздравляю с ачивкой. Когда спокойнейший и терпеливейший обитатель форума вкатывает жирный минус - это достижение, я считаю
0
|
|
| 17.04.2026, 14:54 | |
|
Ошибка, указывающая на неинициализированные переменные Ошибка: неинициализированные переменные Неинициализированные переменные
Указатели и указатели на указатели, а также типы данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни
1. Механизм отложенного высвобождения фосфора
Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ
Реализована разная скорость. . .
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|