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।