void *
CI में एक समारोह से प्राप्त करने के लिए कुछ इस तरह से किया जाएगा (बहुत मूल उदाहरण):
void *get_ptr(size_t size)
{
void *ptr = malloc(size);
return ptr;
}
उपयोग करते समय मैं एक ही परिणाम कैसे प्राप्त कर सकता हूं std::unique_ptr<>
?
stackoverflow.com/questions/4316727/…
—
खींचें
कृपया बताएं कि आपको इसे करने में क्या समस्या है।
—
मोल्बडिलो
: सामान्य शून्य unique_ptr के लिए इस उत्तर देखें stackoverflow.com/a/39288979/2527795
—
VLL
कृपया ध्यान दें कि
—
अखरोट
malloc
इस तरह सी ++ में उपयोग करने का लगभग कभी भी कारण नहीं होना चाहिए । आप कच्ची मेमोरी में एक पॉइंटर लौटा रहे हैं, जिसे उपयोग करने की अनुमति देने से पहले आपको नई-नई वस्तुओं को लगाने की आवश्यकता है। यदि आपके पास बाद में समय पर ऑब्जेक्ट बनाने के लिए एक अच्छा कारण नहीं है जब आप मेमोरी आवंटित कर रहे हैं, तो आपको उपयोग करना चाहिए new
या std::make_unique
जो मेमोरी आवंटित करेगा, साथ ही उपयुक्त ऑब्जेक्ट भी बनाएगा। या तो मामले में std::vector
साथ reserve
है। बेहतर भी है। यहां तक कि अगर आप इन का उपयोग नहीं करते हैं, operator new
तो स्मृति को आवंटित करने का मुहावरेदार तरीका है, नहीं malloc
।