C Uygun yığın ve yığın kullanımı ?
Bir süre programlama yaptım ama çoğunlukla Java ve C oldu#. Aslında hiç kendi başıma bellek yönetmek zorunda kaldım. Geçenlerde C programlama başladı ve yığın kaydetmek için zaman yığını ve bir şeyleri saklamak gerekir zaman olarak biraz kafam karıştı.
Benim anlayış çok sık erişilen hangi değişkenler stack ve nadiren kullanılan nesneler, değişkenler üzerinde saklanmalıdır, büyük veri yapıları yığında saklanmalıdır. Bu doğru mu yoksa yanlış mıyım?
CEVAP
Hayır, yığın ve yığın arasındaki fark performans değil. Ömrü: bir fonksiyon içinde yerel değişken (malloc olmayan bir şey (veya yeni) yığın üzerinde yaşayan. İşlevinden döndüğünüzde geçer. Eğer bir şey daha ilan etti işlevi daha yaşamak istiyorsanız, öbek üzerinde tahsis gerekir.
class Thingy;
Thingy* foo( )
{
int a; // this int lives on the stack
Thingy B; // this thingy lives on the stack and will be deleted when we return from foo
Thingy *pointerToB = &B; // this points to an address on the stack
Thingy *pointerToC = new Thingy(); // this makes a Thingy on the heap.
// pointerToC contains its address.
// this is safe: C lives on the heap and outlives foo().
// Whoever you pass this to must remember to delete it!
return pointerToC;
// this is NOT SAFE: B lives on the stack and will be deleted when foo() returns.
// whoever uses this returned pointer will probably cause a crash!
return pointerToB;
}
İçin daha net bir anlayış ne yığın, gel de diğer uç-ziyade anlamaya çalış ne yığın mu açısından bir yüksek seviyeli dil, "çağrı yığını" ve "çağırma" ve bakın ne makinenin ne zaman aradın bir işlev. Bilgisayar belleği sadece adresleri bir dizi; "" ve "yığın" derleyici buluşlar. öbek.
Konuları sadece 22 MB toplam bellek ku...
Yığın boyutu 50 ile bir iş parçacığı o...
Nasıl (yığın) X element parçaya Yakut ...
Etkinlik ana ekrandan Android uygulama...
Java Başlatmak için Reddediyor - nesne...