'VirtualAlloc arasındaki farklar ne ve HeapAlloc?
Windows ortamında bellek ayrılamadı, *, malloc
HeapAlloc
, new
*0 gibi bir sürü yöntem var.
Aralarında ne fark var öyle mi?
CEVAP
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.
C yapı ve sınıf arasındaki farklar nel...
Oracle NVL ve Birleşim arasındaki Fark...
C string ve compare == arasındaki fark...
Çok boyutlu bir dizi ve C dizi dizisi ...
Dizin v. s arasındaki farklar nelerdir...