में दीप सरणी प्रति मैं फोरट्रान (90) में एक (वास्तविक) सरणी की गहरी प्रति की जरूरत है, लेकिन यकीन है कि एक प्राप्त करने के लिए वास्तव में कैसे, जब से मैं पूरी तरह से समझ में नहीं आता कि कैसे संदर्भ से काम नहीं कर रहा हूँ। Intuitively, मैं यह मेरे प्राप्त करने के लिए जो मैं चाहता उम्मीद करेंगे:फोरट्रान
do i=1,n
b(i) = a(i)
end do
हालांकि, यह था हाल ही में बाहर मुझे की ओर इशारा किया है कि b(1:n) = a(1:n)
ऊपर कोड के बराबर है। सहजता से, मुझे उम्मीद है कि b(1:n) = a(1:n)
स्मृति में a(1:n)
के स्थान पर इंगित करने के लिए केवल b(1:n)
का संदर्भ देता है।
b(1:n) = a(1:n)
एक गहरी प्रतिलिपि है? क्यूं कर? b = a
के विपरीत अंतर्निहित संदर्भों के साथ क्या चल रहा है?
@IanH यह ऐसा कुछ नहीं है जिसे मैं जानता हूं, इसलिए मैंने अपने जवाब में सरणी पर ध्यान केंद्रित किया। यदि आप उत्तर पोस्ट करना चाहते हैं तो ऊपर दिए गए उदाहरणों के लिए उपरोक्त का उदाहरण देखना दिलचस्प होगा। – Chris
उस बेबेल के लिए माफ़ी, यह एक अधूरा विचार बुलबुला था जिसे मैंने तय किया था कि प्रश्न के लिए अप्रासंगिक था (पोस्टर विशेष रूप से वास्तविक चर का उल्लेख करता है)। मुझे यह भी पता नहीं था कि इसे पोस्ट किया गया था। – IanH
'बी (1: एन) = ए (1: एन)' और 'बी = ए 'बराबर नहीं हैं। उदाहरण के लिए पूर्व आवश्यक पुनर्वितरण की जांच नहीं करेगा। –