Загрузка...

Когда нужно(уместно) использовать указатели в C++????

Тема в разделе C/C++ создана пользователем KAUF_EN 10 июн 2023. 317 просмотров

  1. KAUF_EN
    KAUF_EN Автор темы 10 июн 2023 0 21 апр 2022
    Когда нужно(уместно) использовать указатели в C++????
     
  2. ChatGPT
    ChatGPT 10 июн 2023 2250 14 мар 2023
    KAUF_EN, указатели в C++ используются для работы с динамической памятью, передачи аргументов в функции по ссылке, создания и работы с динамическими структурами данных, такими как связанные списки, деревья и графы. Они также могут использоваться для управления ресурсами, такими как файлы и сетевые соединения. Кроме того, указатели могут быть полезны для оптимизации производительности, так как работа с указателями может быть более эффективной, чем работа с копиями данных. Однако, необходимо быть осторожным при использовании указателей, так как неправильное использование может привести к ошибкам в работе программы, таким как утечки памяти и сбои в работе программы.
     
  3. Plain
    Plain 10 июн 2023 Policeman swear to God 759 28 авг 2022
    в основном это массивы, динамическая память, работа с функциями
     
    1. Посмотреть предыдущие комментарии (5)
    2. Plain
      Daemon, да я понимаю, но в частности эту особенность удобно применять во всем
    3. Daemon
      Plain, тут уже применение синтаксиса, чем техническое (я это и имел ввиду), но поспорить сложно, действительно, в рамках языка можно и так их использовать
    4. Daemon
      Plain,
      указатель на массив это другое
  4. LVV
    почти во всех структурах данных (стэк, очередь, листы и прочее через классы) и все что через выделение памяти
     
    10 июн 2023 Изменено
    1. Посмотреть предыдущие комментарии (11)
    2. Daemon
      LVV, Есть такое высказывание:
      "Если нечто выглядит как утка, плавает как утка и крякает как утка, то это, вероятно, и есть утка"
    3. Daemon
      LVV,
      Частные случаи списка, где добавление/удаление ограничено.
    4. Daemon
      LVV,
      Я понял, что вы говорите про реализации на основе дискретных узлов, связанных указателями (тема ведь про них). Хотел просто дополнить, что указатели там не обязательны, но конечно для приемлемой скорости лучше использовать их (либо гибрид - список массивов).
      А вот без этого разумеется никак, даже если делать на основе массива, придется делать его динамическим, так что указатели нужны и в случае с массивом (только если нужен список неопределенного размера или в задаче слишком большой разброс по возможному размеру списка).
      Ну тут изначально я сам не совсем правильно выразился, извиняюсь. Вот так следовало мне сказать: "Дополню: список можно сделать как на основе связанных между собой узлов, так и при помощи массива, но в обоих случаях без указателей не обойтись".
  5. Daemon
    Daemon 10 июн 2023 1680 8 янв 2021
    Указатель это один из видов переменных, который может хранить:
    [IMG]
    Через указатель можно работать с тем, на что он указывает: вызвать функцию (или передать как аргумент в другую), вызвать метод у объекта.
     
    10 июн 2023 Изменено
    1. Daemon
      Например оператор new (и new[]), которые предназначены для выделения памяти в процессе работы программы, возвращают указатель на выделенную память.
  6. vtlstolyarov
    vtlstolyarov 11 июн 2023 468 8 янв 2022
    Я не спец по плюсам, но разве указатели не используются для всего что создаётся на куче а не на стэке? и плюс к этому используются тогда когда не хочется копировать со стэка на стэк и передаётся указатель вместо копирования всей структуры?
     
    1. Daemon
      vtlstolyarov, да, это пожалуй самое частое использование
Загрузка...
Top