2011-06-02 15 views
6
struct tm *localtime(const time_t *timep); 

मैंने man localtime की जांच की लेकिन इसका कोई मतलब नहीं है कि इसका उपयोग करने के बाद इसे साफ करना मेरा कर्तव्य है या नहीं।क्या लोकलटाइम() को वापस लौटाया जाना चाहिए?

और वास्तव में मेरे पास एक सूचक लौटने वाले कार्यों पर कई समान संदेह हैं, आप कैसे निर्धारित करते हैं कि इसे मुक्त किया जाना चाहिए या नहीं?

+0

संभव डुप्लिकेट [कैसे है सी में आवंटित स्थानीयसमय का परिणाम struct?] (Http://stackoverflow.com/questions/8694365/how -is-परिणाम-struct के- स्थानीयसमय-आवंटित-इन-सी) – user

उत्तर

8

यह जानकारी आदमी पेज में होना चाहिए - मेरी localtime आदमी पेज का कहना है:

एक स्थिर आवंटित struct करने के लिए दिया गया मान अंक ...

स्थिरता आवंटित वस्तुओं नहीं होना चाहिए free() पर पास किया गया, तो यह आपका उत्तर है - नहीं, आपको localtime() का वापसी मूल्य मुक्त करना चाहिए।

सामान्य मामले में बताने का एकमात्र तरीका प्रश्न में कार्य के दस्तावेज़ीकरण या कार्यान्वयन से परामर्श करना है।

1

आप कार्यों कि स्थिर डेटा की ओर इशारा वापसी के बारे में चिंतित होने की सही हो - वे अक्सर थ्रेड-सुरक्षित नहीं हैं, और यह उन्हें से बचने के लिए, भले ही आपके कोड अभी तक एक बहु-क्रम वातावरण में उपयोग नहीं किया है अच्छी आदत है ।

यह इन कार्यों के _r फार्म का उपयोग करने के लिए बेहतर है, यानी localtime_r()

की
संबंधित मुद्दे