void *CI bir fonksiyondan bir almak için böyle bir şey yapardı (çok temel örnek):
void *get_ptr(size_t size)
{
void *ptr = malloc(size);
return ptr;
}
Kullanırken aynı sonucu nasıl elde edebilirim std::unique_ptr<>?
stackoverflow.com/questions/4316727/…
—
dragosht
Lütfen bunu yaparken hangi sorunu yaşadığınızı açıklayın.
—
molbdnilo
Jenerik void unique_ptr için bu cevaba bakın: stackoverflow.com/a/39288979/2527795
—
vll
mallocC ++ 'da böyle bir kullanım için neredeyse hiçbir neden olmamalıdır . İşaretçiyi ham belleğe döndürüyorsunuz, yeni nesneleri kullanmanıza izin verilmeden önce yerleştirmeniz gerekiyor. Nesneleri bellek ayırmaktan daha geç bir zamanda oluşturmak için iyi bir nedeniniz yoksa, uygun nesneleri oluşturmanın yanı sıra bellek ayıracak newveya kullanacak olanları da kullanmalısınız std::make_unique. Her iki durumda da std::vectorsahip reserveprob. daha iyi. Bunları kullanmasanız bile, operator newbellek ayırmanın deyimsel yolu değil malloc.