यह इस बात पर निर्भर करता है कि आपको बफर की आवश्यकता है।
क्या आपको वास्तव में प्रत्येक पुनरावृत्ति के बाद इसे साफ़ करने की आवश्यकता है या अंत में \0
char स्ट्रिंग के अंत को चिह्नित करने के लिए पर्याप्त होगा? इसके बाद विभिन्न str
लाइब्रेरी कॉल का उपयोग किया जाता है।
यदि आपको वास्तव में इसे साफ़ करने की आवश्यकता है तो आप bzero()
का उपयोग कर सकते हैं। निश्चित रूप से हर पुनरावृत्ति पर मॉलोकिंग और फ्रीिंग संसाधनों का अपशिष्ट है, क्योंकि आप खुशी से बफर का पुनः उपयोग कर सकते हैं।
यदि आप लूप के समानांतर करना चाहते हैं तो एक अलग समस्या उत्पन्न होगी, यानी इसका उपयोग करके कई समवर्ती धागे हैं।
सरल, वास्तविक जीवन उदाहरण: पानी ले जाने के लिए एक बाल्टी का उपयोग करना। मान लीजिए कि आपको उस बाल्टी के साथ कई यात्रा करने की ज़रूरत है: क्या इसे समझने, इसे इस्तेमाल करने, इसे नीचे रखने, इसे फिर से लेने, इसका उपयोग करने, आदि का अर्थ समझ जाएगा ...? आप बाल्टी को यथासंभव बार-बार उपयोग कर सकते हैं। दूसरी तरफ, बाल्टी को आपके और अधिक लोगों द्वारा उपयोग करने की आवश्यकता है, या तो आप बाल्टी तक पहुंच व्यवस्थित करते हैं या अधिक बाल्टी की आवश्यकता होती है।
अंतिम सुझाव: अब प्रदर्शन के बारे में चिंता न करें। वे कहते हैं कि प्रारंभिक अनुकूलन सभी बुराइयों की जड़ है, और आप जल्द ही समझेंगे क्यों।
सबसे पहले, समस्या को समझें: कोड लिखें जिसे फेंक दिया जा सकता है। प्रयोग। दूसरा, इसका परीक्षण करें। सुनिश्चित करें कि यह वही करता है जो आपको चाहिए। तीसरा, इसे अनुकूलित करें। लूप को दस हजार बार चलाएं और मापें कि कितना समय लगता है। फिर बाहर मॉलोक को ले जाएं, और फिर मापें (यूनिक्स के तहत शेल कमांड time
का उपयोग करें)। चौथा, इसे फिर से लिखें क्योंकि आपका पहला प्रयोग संभवतः कोशिश करने वाले कोड के पैच-रीट्री के पैच की गड़बड़ी होगी।
कुल्ला, दोहराना।
ps: औसत समय में मजा लें। यह दिलचस्प होना चाहिए, निराशाजनक नहीं है।
आप पाश बाहर मुक्त फोन नहीं कर सकते हैं इसके अंदर malloc बुला रहे हैं, या आप सभी के लिए स्मृति लेकिन पिछले यात्रा से malloc रिसाव जाएगा। हालांकि, आप malloc के बजाय realloc का उपयोग कर सकते हैं, फिर बाहर मुफ्त। – Cascabel
@ जेफ्रोमी: मुझे लगता है कि आपको उस टिप्पणी को एक उत्तर देना चाहिए। –
आपकी अंग्रेजी ठीक है - यह वास्तव में एसओ पर अधिकांश नौसिखियों की अंग्रेजी की तुलना में बेहतर है। –