Sobes.tech
Junior — Middle

Da li je obavezno da se struktura podataka u programskom jeziku smešta na stek memorije?

sobes.tech АИ

Одговор од АИ

U C#-u, struktura (struct) obično se smešta na steku ako je lokalna promenljiva u metodu. Međutim, to nije obavezno:

  • Ako je struktura polje klase (referentni tip), ona se čuva na hrpi zajedno sa objektom.
  • Ako se struktura pakira (boxing), kopira se na hrpu.

Dakle, mesto strukture u memoriji zavisi od konteksta korišćenja, a ne od same strukture.

Primer:

struct Point { public int X, Y; }

void Method() {
    Point p = new Point(); // p se čuva na steku
    MyClass obj = new MyClass();
    obj.PointField = p; // PointField se čuva na hrpi unutar objekta
}

class MyClass {
    public Point PointField;
}