मॉलोक आणि नविन फरक

Anonim

मॉलोक बनाम नवीन

एक कॉम्प्यूटर प्रोग्रामरची नियुक्ती करणा-या सर्वात सामान्य मुलाखत प्रश्नासाठी अर्जदार / संगणक प्रोग्रामरसाठी आहे आणि ते मॉलाक आणि नवीन यांच्यामधील फरक स्पष्ट करतात. Malloc आणि new दोन्ही संगणक भाषेच्या क्षेत्रात अस्तित्वात आहेत आणि बहुतेक वेळा डायनॅमिक मेमरी आवंटनेसाठी संगणक प्रोग्रामरद्वारे वापरल्या जातात.

दोन दरम्यान मूलभूत फरक आहे की malloc सी-भाषेमध्ये विद्यमान आहे, तर नवीन C ++ भाषेचा विशिष्ट वैशिष्ट्य आहे. मॉलोक हे देखील एक कार्य आहे (जे, प्रोग्रामरसाठी, निष्पादन करण्यासाठी काही वेळ लागतो) तर नवीन ऑपरेटर प्रोग्राम आहे (जे अंमलबजावणी वेळेत कट करते). हे ऑपरेटरकडून नवीन लाभ आहे कारण वास्तविक प्रोग्रामिंग करणाऱ्या प्रोग्रामरला वापरण्यासाठी सर्वात जलद पद्धत निवडण्याची आवश्यकता आहे.

ऑपरेटर नविन फंक्शन malloc प्रमाणे टाईप-सुरक्षित आहे. < फंक्शन मॉलोक सी-भाषेसाठी लायब्ररी फंक्शन आहे. हे सर्व करते स्मृती वाटप करते आणि त्यावर एक पॉइंटर परत करते. दुसरीकडे, ऑपरेटर नवीन भाषा-स्तर बांधणी आहे, आणि त्याचे काम स्मृती वाटप करून आणि योग्य कन्स्ट्रक्टर कॉल करून ऑब्जेक्ट इन्स्तांत आहे. नवीन ऑपरेटर पासून फंक्शन malloc आणखी एक फरक आहे की malloc घोषणा दरम्यान typescasting आवश्यक आहे, तर माजी नाही. तसेच, मॉलोक हे मेमोरी साफ करण्यासाठी "फ्री" हा शब्द वापरते, तर "delete" हा समान हेतूने ऑपरेटरमध्ये वापरला जातो.

अपयश आणि स्मरणशक्ती संपुष्टात येणे या दोहोंचे दोन वेगवेगळे मार्ग आहेत. फॉल मॉलॉक अयशस्वी झाल्यास, तो एक शून्य पॉइंटर सह परत. ऑपरेटर नवीन कधीही एक नल पॉइंटर परत करत नाही परंतु त्याऐवजी अपवाद फेकून अपयशी दर्शवितात. हा ऑपरेटरसाठी एक फायदा आहे कारण संगणक प्रोग्रामरला जेव्हा प्रत्येक वेळी नवीन कॉल होत असेल किंवा संगणक प्रोग्रामर अशा अपवाद गमावतील तेव्हा परत केलेले पॉइंटर तपासण्याची आवश्यकता नाही.

फंक्शन मॉलोक ऑब्जेक्ट (ऑब्जेक्टचे कन्स्ट्रक्टर म्हणतात) तयार करत नाही परंतु ऑपरेटर नवीन करतो. नवीनचा आणखी एक फायदा असा की ऑपरेटरला ओव्हरलोड केले जाऊ शकते जेव्हा फलन malloc करू शकत नाही. फंक्शन malloc ला वाटप करण्यासाठी एकूण बाइट्सची संख्या निर्दिष्ट करताना संचालक नवीन साठी वाटप करण्यासाठी विशिष्ट ऑब्जेक्ट्स ची आवश्यकता असते.

रीअलोकचा वापर करुन फंक्शन malloc वापरून मेमरीचे पुनर्मूल्यांकन किंवा पुनर्वितरित केले जाऊ शकते. तथापि, ऑपरेटर नवीन हे कार्य करू शकत नाही आणि ऑपरेटरच्या मुख्य तोटेपैकी एक म्हणून गणल्या जाते. ऑपरेटर प्रती फंक्शन malloc दुसरा फायदा आहे की malloc जलद स्मृती रक्कम वाढवू शकता आहे. हे अजूनही malloc आणि realloc वापरत आहे. C ++ भाषेतील समान परिस्थिती करत असताना, प्रोग्रामरने ऑपरेटर नवीन सह मेमरीचा नवीन भाग तयार करणे आवश्यक आहे. नवीन मेमरीमध्ये बदललेले आकार असणे आवश्यक आहे आणि मूळ बफर मधील डेटावर कॉपी केले जाईल.कॉपी केल्यानंतर मूळ बफर हटवणे आवश्यक आहे. हे प्रोग्रामरसाठी धीमे प्रक्रिया असू शकते. < फंक्शन malloc वर ऑपरेटर नवीन फायदा आहे तर कार्य डेटा परत मिळवून करते * फंक्शन * रद्द करते ओव्हरलोडिंग शक्य असलेल्या ऑपरेटरच्या तुलनेत फंक्शन मॉलोक ओव्हरलोड केले जाऊ शकत नाही. ऑपरेटरचे आणखी एक वैशिष्ट्य म्हणजे फंक्शन मॉलॉकच्या तुलनेत ऑपरेटरसह चुका करणे कमी होण्याची शक्यता आहे. प्रोग्रामरसाठी हा प्लस मानला जातो, खासकरून जर ते बरेच कोड लिहित असतील किंवा एका कडक शेड्यूलवर कोडवर काम करत असतील. फंक्शन मॉलोक आणि फ्री C ++ मध्ये वापरले जाऊ शकतात परंतु ते थेट वापरता येणार नाही. त्याऐवजी नवीन वापरणे आणि हटविणे सल्ला दिला आहे.

सारांश:

1 मॉलोक एक फंक्शन असून नवीन ऑपरेटर आहे.

2 C ++ भाषेचा एक विशिष्ट वैशिष्ट्य आहे, तर सी-भाषामध्ये मॉलोकचा वापर केला जातो.

3 ऑपरेटर नवीन "हटवा" सह अनुसरण करताना फेल malloc सह "मोफत. "< 4 फंक्शन malloc हे सी-भाषेसाठी लायब्ररी फंक्शन आहे, तर ऑपरेटरला नवीन भाषा-स्तर C ++ भाषेतून तयार केले जाते. <