Sobes.tech
Back to tasks
Junior — Senior
239

Определение выводимых значений и размера структуры при передаче её по указателю

Get help with live coding in real time with Sobes Copilot
Task condition

Нужно понять, какие данные будут напечатаны до вызова функции mutatePtr, что выведет сама функция и как изменятся значения после её выполнения. Кроме того, требуется узнать, сколько байтов занимает объявленная структура в памяти.

type st struct {
  // 4 ??? sizeof
  p1 bool
  p2 int
  p3 bool
}

// ptr
func main() {
  myStr := st{}

  fmt.Println(myStr) // 1 ???

  mutatePtr(&myStr)

  fmt.Println(myStr) // 3 ???

  fmt.Println(unsafe.Sizeof(myStr))
}

func mutatePtr(in *st) {
  in = &st{
    p1: true,
    p2: 666,
    p3: false,
  }

  fmt.Println("in mutatePtr:", in) // 2
}