मैंक्या malloc'd सूचक के लिए __attribute __ ((ns_returns_retained)) के बराबर है?
-(SomeStruct *) structFromInternals __attribute__((returns_malloced_ptr))
{
SomeStruct *ret = malloc(sizeof(SomeStruct));
//do stuff
return ret;
}
की तरह एक टिप्पणी के कुछ के लिए देख रहा हूँ बजना स्थिर विश्लेषक जानवरों पीड़ा कम करने के लिए। एकमात्र व्यावहारिक विशेषता लिंक जो मैं पा सकता हूं वह for GCC है, लेकिन इसमें ns_returns_retained
भी शामिल नहीं है, जो एक विस्तार में है, मुझे लगता है।
संपादित करें:
क्यों यह आवश्यक है के रूप में, मैं एक परिदृश्य है कि मैं एक साधारण मामले में repro नहीं कर सकते हैं, तो यह एक ऑब्जेक्टिव-सी परियोजना में एसी lib साथ क्या करना है हो सकता है ... सार, है मैं एक स्थिर विश्लेषक चेतावनी है कि createStruct में malloc लीक कर रहा है मिलती है:
typedef struct{
void * data;
size_t len;
}MyStruct;
void destroyStruct(MyStruct * s)
{
if (s && s->data) {
free(s->data);
}
if (s) {
free(s);
}
}
MyStruct * createStructNoCopy(size_t len, void * data)
{
MyStruct * retStruct = malloc(sizeof(MyStruct));
retStruct->len = len;
retStruct->data = data;
return retStruct;
}
MyStruct * createStruct(size_t len, void * data)
{
char * tmpData = malloc(len);
memcpy(tmpData, data, len);
return createStructNoCopy(len, tmpData);
}
MyStruct * copyStruct(MyStruct * s)
{
return createStruct(s->len, s->data);
}
आपको इसकी आवश्यकता क्यों है? –
बस इसे दस्तावेज़ में लिखें। –