|
|
||||||
Почему поинтер обнуляется ?30.04.2019, 02:01. Показов 9076. Ответов 118
Метки нет (Все метки)
0
|
||||||
| 30.04.2019, 02:01 | |
|
Ответы с готовыми решениями:
118
Почему все обнуляется??? Почему мой указатель обнуляется? Почему не обнуляется указатель через функцию? |
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
||
| 17.07.2019, 16:54 | ||
|
1) в функции getRandom() выделяется локальная переменная r, в которую записывается адрес в куче. По этому адресу пишем 10. 2) при выходе из функции возвращаем адрес в куче (там по прежнему 10). Сама переменная r теряется. 3) этот адрес записывается в локальную переменную ptr в main(). По этому адресу по прежнему находится 10. 4) последующая delete() освобождает память в куче, полученную после getRandom(). Теперь переменная ptr ссылается в никуда. 5) сама локальная переменная ptr теряется после завершения main() Что находится по старому адрес в куче, уже не важно. В debug-версии, содержимое вытирается. В release даже и не скажу. Главное то, что память возвращается в кучу.
1
|
||
|
|
|||||||||||
| 26.07.2019, 14:48 [ТС] | |||||||||||
|
друзья почему так работает
а вот так не хочет
0
|
|||||||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||||||
| 27.07.2019, 00:29 | |||||||||
0
|
|||||||||
|
|
|
| 27.07.2019, 13:43 | |
|
alexbmd, хватит страдать фигнёй, по кусочкам спрашивая банальщину!
test = buf; p = "hello"; a=b; ...=... это не копирование, блин, строк в Си! Это, очень грубо выражаясь, создание ещё одного указателя на ту же самую строку!
0
|
|
|
698 / 140 / 57
Регистрация: 20.08.2017
Сообщений: 255
|
||
| 27.07.2019, 14:38 | ||
|
1. Доверять программисту. 2. Не мешать программисту делать то, что ему нужно. 3. Сохранить язык маленьким и простым. 4. Предоставлять только один способ выполнить действие. 5. Сделать язык быстрым, даже в ущерб портабельности. Обратите внимание на пункты №1 и №2. Язык вам доверяет. Если вы сказали, что память выделять не надо, значит язык ее не будет выделять. P. S. Конечно, C и C++ это абсолютно разные языки, но касательно, по крайней мере, пункта 1 их дух схож. P. P. S. Кстати, советую вам начать изучение с языка C, а не C++ (см. пункт №3).
0
|
||
|
|
||||||||||||||||
| 29.07.2019, 14:55 [ТС] | ||||||||||||||||
|
DrOffset, ну можно еще проще
я просто надеялся , предоставив , размер , стартовый адрес компилятор додумается выделить в статической памяти место для данного литерала Kuzia domovenok, почему не копирование ? если я делаю так
просто еще один указатель это
0
|
||||||||||||||||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||
| 29.07.2019, 15:59 | ||
|
Добавлено через 2 минуты Примерно то же самое что записать на блокноте номер страницы в книге, или же переписать в блокнот из книги всю эту страницу текста.
0
|
||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|||||||||||
| 29.07.2019, 17:08 | |||||||||||
|
Память для адреса выделена в строке
Добавлено через 4 минуты Но можно туда записать значение адреса первого элемента массива static char buf[6]. Можно ещё какой-нибудь адрес записать. Как и в твоём посте #103.Но содержимое того, что находится по этому адресу, можно копировать с помощью memcpy/strcpy/поэлементного копирования, если память по этому адресу выделена приложению. А в
0
|
|||||||||||
|
|
|||||||
| 29.07.2019, 19:46 [ТС] | |||||||
|
сейчас попробовал
? да но я жидал compile error тк. декларировали test[1] а печатаем [2]
0
|
|||||||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|||||||
| 29.07.2019, 21:52 | |||||||
|
Добавлено через 3 минуты Чтобы он никогда не вываливался, можно вызывать только
0
|
|||||||
|
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
|
|
| 30.07.2019, 10:24 | |
|
0
|
|
|
|
|||||||||||
| 31.07.2019, 15:48 [ТС] | |||||||||||
|
еще раз поковырялся в массивах/ссылках, насчёт destination as pointer не уверен, но в destination as array точно копируется всё содержимое а не указатель. я про
memcpyвот как правмльно
0
|
|||||||||||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||||||
| 31.07.2019, 16:02 | ||||||
|
alexbmd, второй вариант. В случае первого возможен вылет или порча данных в программе.
Добавлено через 1 минуту И ещё. Не забудь после всех действий с test выполнить
0
|
||||||
|
|
||||||
| 31.07.2019, 17:42 [ТС] | ||||||
|
страно тогда почему нет даже варнинга для первого варианта ? :\
warning pedantic не даёт ни каких варнингов и последний вопрос: правильно я понимаю что для test нет других вариантов , только malloc , если мы хотим копировать все содержимое. спрашиваю потому что не хочеться следить за malloc и делаь free
0
|
||||||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||
| 31.07.2019, 17:54 | ||
|
Если пользуешься malloc и free, или там new и delete, то следить обязательно придётся. Не хочется - начинай разбираться с std::string и std::vector.
1
|
||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 31.07.2019, 19:31 | ||
|
Сила C++ именно в том, что вы можете следить за такими вещами.
1
|
||
|
0 / 0 / 0
Регистрация: 02.08.2019
Сообщений: 2
|
||||||
| 02.08.2019, 17:26 | ||||||
0
|
||||||
| 02.08.2019, 17:26 | |
|
Почему во время чтения из файла переменная row_i в цикле постоянно обнуляется? Переполнение знаковых целых чисел: почему значение переменной обнуляется, а не записывается младшее значение? Почему массив не обнуляется Не обнуляется таймер почему-то Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|