Junior — Middle
Da li se strukturalni objekti mogu smeštati u dinamičku memoriju (heap)?
sobes.tech АИ
Одговор од АИ
U C# strukturama (struct) su tipovi vrednosti koji se obično smeštaju na stek. Međutim, objekti struktura takođe mogu biti na hrpi ako su deo objekta klase ili ako je struktura upakovana u objekat (boxing).
Na primer, ako se struktura koristi kao polje klase, ona se čuva na hrpi zajedno sa objektom klase:
struct Point { public int X, Y; }
class Shape {
public Point Position; // struktura unutar objekta klase
}
var shape = new Shape(); // objekat klase na hrpi, struktura Position takođe na hrpi
Takođe, ako se struktura upakuje u objekat, biće smeštena na hrpi:
Point p = new Point { X = 1, Y = 2 };
object boxed = p; // upakivanje strukture u objekat, smeštanje na hrpi
Dakle, same strukture su obično na steku, ali mogu biti na hrpi u kontekstu objekata klasa ili pri boxing-u.