मैं एक अनिर्धारित लंबाई के डेटा की सरणी रखने के लिए फोरट्रान में लिंक्ड सूचियों का उपयोग करना चाहता हूं।फोरट्रान लिंक्ड सूचियों को कैसे हटाता है?
TYPE linked_list
INTEGER :: data
TYPE(linked_list) :: next_item => NULL()
END TYPE
अब मैं इस तरह के एक सूची बना कहते हैं::
मैं निम्नलिखित सेटअप
TYPE(LINKED_LIST) :: example_list
example_list%data =1
ALLOCATE(example_list%next_item)
example_list%next_item%data = 2
ALLOCATE(example_list%next_item%next_item)
example_list%next_item%next_item%data = 3
मेरे सवाल है, अगर मैं प्रदर्शन:
DEALLOCATE(example_list)
होगा सब घोंसले के स्तर को भी हटा दिया जा सकता है या क्या मुझे सूची को सबसे गहरे तत्व में पार करने की आवश्यकता है और गहरे ग्यारहों से हटाना है ऊपर की ओर?
की तरह यह एक लंबे समय के बाद से मैं फोरट्रान में ऐसा किया गया है, लेकिन मैं यकीन है कि आप मैन्युअल रूप से पुनःआवंटन करने के लिए है हूँ। यदि आप केवल सिर को हटा देते हैं, तो आप संदर्भ खो देंगे और मेमोरी लीक लेंगे। – ChrisF
हां। मैं उससे बहुत डरता था। मुझे हालांकि कहना होगा, मुझे परेशानी हो रही है, वाक्यांश क्या है, अपना खुद का कचरा संग्रह रोलिंग? – EMiller
आप मेमोरी प्रबंधित फोर्टन को लागू नहीं कर सकते हैं। –