मैं एक सी फ़ंक्शन को कॉल करने के लिए स्विफ्ट कंपाइलर की ब्रिजिंग हैडर सुविधा का उपयोग कर रहा हूं जो malloc()
का उपयोग करके स्मृति आवंटित करता है। फिर यह उस स्मृति में एक सूचक देता है।स्विफ्ट में मुफ्त सी-मॉलोक() 'डी मेमोरी?
char *the_function(const char *);
स्विफ्ट में, मैं इसे इस तरह का उपयोग करें:: समारोह प्रोटोटाइप की तरह कुछ है
var ret = the_function(("something" as NSString).UTF8String)
let val = String.fromCString(ret)!
स्विफ्ट लेकिन आम तौर पर सी में के विषय में मेरी अज्ञानता माफ कर दो, अगर the_function() malloc'ing है स्मृति और इसे वापस कर रहा है, किसी और को इसे किसी भी समय मुक्त करने की जरूरत है।
क्या इसे स्विफ्ट द्वारा किसी तरह से संभाला जा रहा है या क्या मैं इस उदाहरण में स्मृति को लीक कर रहा हूं?
अग्रिम धन्यवाद।
भावना बनाता करने के लिए सरल किया जा सकता है, धन्यवाद! – Christopher