Witam,
mam następujące pytania:
- czy każda zmienna utworzona w funkcji, ale bez pomocy operatora
new
będzie utworzona na stosie? - Czy każda zmienna utworzona globalnie lub operatorem
new
będzie utworzona na stercie? - Czy metoda (funkcja w klasie), w której są tworzone zmienne lokalne, będzie tworzyć je również na stosie - nawet, gdyby obiekt danej klasy był utworzony na stercie?
- Czy tworząc wskaźnik na stosie (w funkcji) do obiektu utworzonego na stercie (globalnie) inny obiekt utworzony na stercie (globalnie) posiadający wskaźnik do tego wskaźnika na stosie będzie się odwoływał szybciej, w przeciwieństwie, gdyby oba wskaźniki były utworzone na stercie? Chodzi o coś w stylu:
void f() {
K* wskaznik;
g_obiekt.set_ptr(&wskaznik); /*g_obiekt to obiekt globalny lub pole innego obiektu - wewnątrz którego jest wskaźnik na ten wskaźnik utworzony w metodzie f()*/
//...
}
- Wydaje mi się, że tak, ale dla pewności zapytam: czy można w ogóle bezpiecznie utworzyć wskaźnik na stosie (w funkcji) do obiektu na stercie i na nim operować?
Z góry dziękuję za odpowiedzi.