प्रौद्योगिकी साझेदारी

delete तथा delete इत्येतयोः मिश्रणस्य अनिर्धारितसमस्यायाः व्याख्या[] ।

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

वयं जानीमः यत् delete इत्यस्य उपयोगः गतिशीलस्थानं मुक्तुं भवति, delete[] इत्यस्य उपयोगः बहुविधं गतिशीलस्थानं मुक्तुं भवति, परन्तु यदि वयं तान् मिश्रयामः तर्हि काः समस्याः भविष्यन्ति? मया ब्लोग् मध्ये बहवः लेखाः पठिताः, परन्तु ते सन्तोषजनकाः न सन्ति, अतः अहं भवद्भ्यः ज्ञापयितुं एतत् लेखं लिखितवान् यत् एषः किम् अस्ति, किमर्थं च (एकं उपरितनं व्याख्यानं, कृपया मां सम्यक् कुर्वन्तु)。

---------------------------------------------------------------------------------------------------------------------------------

प्रथमं उदाहरणं पश्यितुं शक्नुमः- १.

धावनस्य परिणामः अस्ति : १.

परन्तु यदि वयं विध्वंसकं स्पष्टतया न लिखामः तर्हि :

परिणामः सामान्यं संचालनम् अस्ति : १.

---------------------------------------------------------------------------------------------------------------------------------

किमर्थम्‌?

यदि अहं भवन्तं पृच्छामि यत् एतेभ्यः १० Class A-वस्तूनाम् कृते प्रणाली कियत् स्थानं आवंटयति तर्हि भवान् अधिकतया ४० बाइट् उत्तरं दास्यति ।इदं सुलभतया अवगन्तुं शक्यते एकः A 4 बाइट्, 10 च 40 बाइट् । .परन्तु वस्तुतः यदि भवान् स्वयमेव विध्वंसकं लिखति तर्हि कुलम् ४४ बाइट् आवंटितं भविष्यति यदि भवान् विध्वंसकं न लिखति तर्हि कुलम् ४० बाइट् आवंटितं भविष्यति ।

विध्वंसकं लिखित्वा किमर्थं ४ अधिकानि बाइट् सन्ति ? वयं जानीमः यत् एतत् स्थानं मुक्तुं delete इत्यस्य उपयोगानन्तरं destructor स्वयमेव (http://t.csdnimg.cn/f2FOj इति ग्रन्थः इति ग्रन्थः), (१) यदि वयं स्वयं विध्वंसकं लिखामः तर्हि delete इत्यनेन तत् (वस्तुतः delete इत्यपि एकं फंक्शन् अस्ति, यत् फंक्शन् इत्यस्य नेस्टेड् कॉल् इत्यस्य तुल्यम् अस्ति ।), ततः कियत्वारं आह्वयते इति प्रश्नः एते चत्वारः बाइट् पूर्णाङ्कस्य परिमाणं सम्यक् भवन्ति आहूत।तथापि भवद्भिः ज्ञातव्यं यत् p सूचकः अद्यापि प्रथमं वस्तु दर्शयति, परन्तु निर्माणस्य विनाशस्य च समये वस्तुनां संख्यां प्राप्तुं अग्रे गमिष्यति ।, विशिष्टः सम्बन्धः यथा-

(२) यदि वयम् अस्मिन् समये विध्वंसकं न लिखामः तर्हि सः संकलकेन उत्पन्नं विध्वंसकं वारं अभिलेखनं विना आह्वयति (तस्मिन् निम्नस्तरः सम्मिलितः भवितुम् अर्हति, अहं तस्य विषये निश्चितः नास्मि, कृपया मां सम्यक् कुर्वन्तु), तथा च अतिरिक्तं प्लास्टिक सर्जरी उद्घाटयितुं आवश्यकता नास्ति।

ठीकम्, अधुना वयं उपर्युक्तं उदाहरणं व्याख्यातुं शक्नुमः

Delete पूर्वनिर्धारितरूपेण सूचकेन सूचितस्थानात् स्थानं मुक्तं करोति delete[] प्रथमं पूर्वनिर्धारितरूपेण अधिकं स्थानं उद्घाटितम् अस्ति वा इति परीक्षते, यदि च भवति तर्हि सूचकं विमोचनात् पूर्वं एकं स्थानं अग्रे चालयति यदि भवान् अधिकं स्थानं उद्घाटयति अथवा स्थानं मुक्तुं delete इत्यस्य उपयोगं करोति तर्हि उद्घाटितं स्थानं मुक्तं कर्तुं न शक्यते, येन स्मृति-लीकं भवति, अतः त्रुटिः निवेदिता भवति ।

यदि अहम् एतस्य अभ्यासं करोमि तर्हि मम त्रुटिः भविष्यति वा ? : १.

विध्वंसकस्य आह्वानस्य आवश्यकता नास्ति, वस्तुसङ्ख्यायाः गणनायाः आवश्यकता नास्ति, अतः अधिकं स्थानं उद्घाटयितुं आवश्यकता नास्ति, अतः सूचकेन सूचितस्थानात् स्थानं मुक्तुं शक्यते, अतः कोऽपि दोषः न भविष्यति निवेदितम्।

तत्र बहवः परिस्थितयः सन्ति, भवन्तः अधः गत्वा स्वयमेव तस्य प्रयोगं कर्तुं शक्नुवन्ति।

मम अभिव्यक्तिक्षमतायाः अभावः अस्ति कृपया कतिपयानि वाराः पठन्तु तर्हि भवन्तः अवश्यमेव किमपि लाभं प्राप्नुयुः।