TGViewer
Библиотека Go для собеса | вопросы с собеседований Библиотека Go для собеса | вопросы с собеседований @go_interview_lib · 7.46K subscribers
Post #1319 1.56K
Указатель на указатель: когда это реально нужно

Двойной указатель решает конкретную задачу: изменить указатель внутри функции так, чтобы изменение было видно снаружи.

Проблема без **:
func resetPointer(p *int) {
newVal := 0
p = &newVal // меняем локальную копию — снаружи ничего не изменится
}


p — это копия адреса. Переназначение p внутри функции не затрагивает оригинал.

Решение через **int:
func resetPointer(p **int) {
newVal := 0
*p = &newVal // меняем сам указатель — изменение видно снаружи
}

func main() {
a := 42
ptr := &a
resetPointer(&ptr)
fmt.Println(*ptr) // 0
}


Теперь функция получает адрес самого указателя и может подменить его цель.

Другие кейсы

Динамические структуры данных — при построении связных списков или деревьев, когда нужно менять корневой указатель:
func insertHead(head **Node, val int) {
newNode := &Node{val: val, next: *head}
*head = newNode
}


Инициализация через функцию — паттерн, когда объект создаётся внутри функции и возвращается через параметр, а не через return:
func initConfig(cfg **Config) {
*cfg = &Config{Timeout: 30}
}


Когда не нужен

Если цель просто изменить значение, на которое уже указывает указатель, достаточно одного *. Двойной указатель нужен только тогда, когда требуется изменить сам адрес, хранящийся в указателе.

🐸 Библиотека Go для собеса
  • 🤔 5
  • 👾 3
  • ❤ 2
  • 🌚 2
  • 👍 1
More from @go_interview_lib
  1. Sep 18, 2026А вы уже забрали свой подарок ко Дню программиста? К вашему профессиональному празднику Tp…
  2. Sep 15, 2026❓ Какой максимальный размер бинарного файла можно собрать В Go нет встроенного ограничения…
  3. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  4. Aug 4, 2026❓ Объясните разницу между безопасным доступом к байтам строки через срез и использованием…
  5. Aug 4, 2026Покупать новый курс каждый раз, когда меняется рабочая задача, — довольно странная механик…
  6. Aug 4, 2026👅 Самое сложное — выбрать не курс, а направление Сегодня хочется разобраться в AI-агентах…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →