Ответ
При использовании make для структур в Go возникает ошибка компиляции, так как make предназначен только для создания срезов, карт и каналов. Для структур используется new() или литеральная инициализация:
// Ошибка - make не работает со структурами
// s := make(MyStruct)
// Правильные варианты:
s1 := MyStruct{} // В стеке (если не убегает)
s2 := new(MyStruct) // В куче
s3 := &MyStruct{} // В куче
Расположение (стек/куча) определяется escape-анализом компилятора. Если указатель на структуру может "убежать" (например, возвращается из функции), она размещается в куче.