मैं एक किताब पढ़ रहा हूं ( बुटेनहोफ, 1997 द्वारा पोसिक्स थ्रेड्स के साथ प्रोग्रामिंग ) जो सी का उपयोग करता है, और मैं निम्नलिखित पंक्ति में आया हूं:
(void)free(data);
यहाँ, data
एक आवंटित संरचना के लिए सिर्फ एक संकेतक है,
data = malloc(sizeof(my_struct_t));
क्यों free
डाली जा रही है void
?
सी की मेरी समझ से, यह दो कारणों से समझ में नहीं आता है:
- मुफ्त फ़ंक्शन पहले से ही वापस आ जाता है
void
- कोड रिटर्न मान का उपयोग नहीं कर रहा है (यह एक चर को भी नहीं सौंपा जा रहा है)
पुस्तक 1997 में लिखी गई थी। क्या यह किसी प्रकार की विरासत है?
लेखक का उल्लेख है कि उदाहरण डिजिटल यूनिक्स 4.0 डी पर चलाए गए थे, लेकिन मैं अभी भी एक फ़ंक्शन के परिणाम को डालने के लिए एक कारण की कल्पना नहीं कर सकता हूं यदि आप उस परिणाम का उपयोग नहीं करने जा रहे हैं।
free()
पुस्तक में एक विषमता के रूप में कलाकारों को समझो कि आपको अनुकरण करने की आवश्यकता नहीं है। यह लंबे समय से पहले एक बार अर्ध-प्रासंगिक था, लेकिन यह किसी भी अधिक प्रासंगिक नहीं है।