SORU
16 Mayıs 2009, CUMARTESİ


'VirtualAlloc arasındaki farklar ne ve HeapAlloc?

Windows ortamında bellek ayrılamadı, *, mallocHeapAlloc, new*0 gibi bir sürü yöntem var.

Aralarında ne fark var öyle mi?

CEVAP
16 Mayıs 2009, CUMARTESİ


Her API farklı kullanımlar için. Her biri de bellek ile işiniz bittiğinde işlevi azat/doğru kaldırma gerekir.

VirtualAlloc

Birçok seçenek sunar, ama çoğunlukla yararlı olan düşük seviyeli, Windows API oldukça belirli durumlarda insanlar için. (Edit: 4 KB) daha büyük boyutta sadece bellek ayrılamadı. İhtiyacınız olduğu durumlar vardır, ama bu durumlardan biri olduğunda anlarsın. En yaygın olanlarından biri ise bellek doğrudan başka bir işlem ile paylaşmak için varsa. Genel amaçlı bir bellek ayırma için kullanmayın. VirtualFree serbest bırakmak için kullanın.

HeapAlloc

Sana her istediğini ayırır, VirtualAlloc daha büyük parçalar değil. HeapAlloc VirtualAlloc aramak gerektiğinde bilir ve bu yüzden sizin için otomatik olarak yapar. Gibi 8* *ama yalnızca Windows ve birkaç daha fazla seçenek sağlar. Bellek genel parçalarını ayırmak için uygundur. Bazı Windows API bu onları geçmesi bellek ayırmak için kullanın, ya da size bir şekilde dönüş belleği boşaltmak için onun arkadaşı HeapFree kullanmanız gerekebilir.

malloc

C bellek ayırma yolu. Eğer C yerine C yazıyorsanız bu tercih , ve kodunuzu örneğin Unıx bilgisayarları üzerinde de çalışmak istiyorum, ya da birini kullanmak gerekir seçtiklerini söylüyor. Bellek yeniden gelmez. HeapAlloc bellek gibi genel parçalarını ayırmak için uygundur. Basit bir API. free ayırması için kullanın. Visual C 'malloc aramalar s HeapAlloc.

yeni

C bellek ayırma yolu. Eğer C yazıyorsanız, bu tercih . Ayrılmış bellek içine de bir nesne ya da nesneler koyar. delete ayırması için kullanın. Visual studio new çağrı HeapAlloc, ve sonra belki de nesneleri initialises, ne diyorsunuz bağlı olarak.

Özel durumlarda kullanmak zorunda söylemiş olabilir o da SysAllocString gibi benzeri fonksiyonların bir çift vardır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • LinusTechTips

    LinusTechTip

    25 Kasım 2008
  • Vicious Computers

    Vicious Comp

    14 EKİM 2006
  • VvCompHelpvV

    VvCompHelpvV

    4 EYLÜL 2007