मैं एक पुराने कोड आधार पर काम कर रहा हूं और बहुत ज्यादा मुफ्त का हर मंगलाचरण () अपने तर्क पर एक कास्ट का उपयोग करता है। उदाहरण के लिए,
free((float *)velocity);
free((float *)acceleration);
free((char *)label);
जहाँ प्रत्येक सूचक इसी (और मिलान) प्रकार का होता है। मुझे ऐसा करने का कोई मतलब नहीं है। यह बहुत पुराना कोड है, इसलिए यदि K & R चीज है तो मैं आश्चर्यचकित रह जाता हूं। यदि हां, तो मैं वास्तव में पुराने कंपाइलरों का समर्थन करना चाहता हूं जिनके लिए यह आवश्यक हो सकता है, इसलिए मैं उन्हें निकालना नहीं चाहता।
क्या इन जातियों का उपयोग करने का कोई तकनीकी कारण है? मैं भी उन्हें उपयोग करने के लिए एक व्यावहारिक कारण के ज्यादा नहीं देखते हैं। इसे मुक्त करने से ठीक पहले डेटा प्रकार की याद दिलाने की बात क्या है?
EDIT: यह प्रश्न अन्य प्रश्न का डुप्लिकेट नहीं है। अन्य प्रश्न इस प्रश्न का एक विशेष मामला है, जो मुझे लगता है कि अगर मतदाता सभी उत्तरों को पढ़ेंगे तो यह स्पष्ट है।
Colophon: मैं "कांस्ट उत्तर" चेकमार्क दे रहा हूं क्योंकि यह एक वास्तविक कारण है कि ऐसा करने की आवश्यकता क्यों हो सकती है; हालाँकि, इसके बारे में जवाब एक पूर्व-एएनएसआई सी प्रथा (कम से कम कुछ प्रोग्रामर के बीच) होने के कारण लगता है कि यह मेरे मामले में इस्तेमाल किया गया था। यहाँ बहुत से लोगों द्वारा बहुत सारे अच्छे अंक। आपके योगदानों के लिए धन्यवाद।
void*
पूर्व-मानक सी में कोई भी नहीं था , लेकिन केवल char*
। इसलिए यदि आपके पुरातात्विक निष्कर्ष कोड को मुक्त करने के पैरामीटर को दर्शाते हैं (), मेरा मानना है कि यह या तो उस समय अवधि से होना चाहिए, या उस समय के प्राणी द्वारा लिखित होना चाहिए। हालांकि मुझे इसके लिए कोई स्रोत नहीं मिल रहा है, इसलिए मैं जवाब देने से बचना चाहूंगा।