Avatar ·

Allocation de structures sur la pile et le tas en Go : quel lien avec le garbage collector ?

Bonjour à tous ! Je viens de commencer à apprendre Go après C++ et Java, et la question de l'allocation mémoire pour les structures me trouble beaucoup. En C++, j'avais l'habitude de contrôler explicitement si je créais un objet sur la pile (`MyClass obj;`) ou sur le tas (`MyClass* obj = new MyClass();`). En Java, tout est toujours sur le tas, et les références sur la pile. Mais en Go, je vois que les structures peuvent être créées comme `myStruct := MyStruct{}` (apparemment sur la pile) et comme `myStruct := &MyStruct{}` (apparemment sur le tas). De plus, Go a un garbage collector. Je suis complètement perdu. Par exemple, j'ai ce code : ```go type User struct { Name string Age int } func createUser(name string, age int) *User { u := User{Name: name, Age: age} return &u // Je retourne un pointeur vers une variable locale ! } ``` En C++, cela serait un comportement indéfini (pointeur