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
malloc
C ++ '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 new
veya kullanacak olanları da kullanmalısınız std::make_unique
. Her iki durumda da std::vector
sahip reserve
prob. daha iyi. Bunları kullanmasanız bile, operator new
bellek ayırmanın deyimsel yolu değil malloc
.