Mam następujący fragment fragmentuAlokacja stosu nie powiedzie się i alokacja sterty zakończy się sukcesem! Czy to możliwe?
Class Sample
{ Obj_Class1 o1;
Obj_Class2 o2;};
ale wielkość Obj_Class1
i Obj_Class2
jest tak ogromny, że kompilator pokazuje ostrzeżenie „Zastanów się, trochę miejsca na kupie”. Zostałem poproszony o zastąpienie Obj_Class1 o1 z Obj_Class1* o1 = new Obj_Class1();
Ale uważam, że nie ma sensu wprowadzanie tej zmiany, ponieważ alokacja sterty również zakończy się niepowodzeniem, jeśli alokacja stosu zakończy się niepowodzeniem. Mam rację? Czy ma sens wprowadzenie tej zmiany (innej niż wyłączenie ostrzeżenia kompilatora).
Po prostu z ciekawości, jaka jest wielkość zajęć? – Naveen
około 65000 bajtów ... – Prabhu
Zamiast zamiast zamieniać instancję Obj_Class1 na wskaźnik, czy zamiast tego można zmienić jej implementację, aby zamiast tego alokować swoje potrzeby na stercie? Nawet zmiana go na Pimpl może pomóc. –