मैं एक कोड और प्रभावी बनाने के कोशिश कर रहा हूँ के रूप में ही है। मेरे पास ऐसा कुछ है:व्यवहार जब नया आकार पुराने
typedef struct{
...
}MAP;
MAP* pPtr=NULL;
MAP* pTemp=NULL;
int iCount=0;
while (!boolean){
pTemp=(MAP*)realloc(pPtr,(iCount+1)*sizeof(MAP));
if (pTemp==NULL){
...
}
pPtr=pTemp;
...
iCount++;
}
स्मृति गतिशील रूप से आवंटित की जा रही है। कोड को और अधिक कुशल बनाने के लिए मैं realloc कॉल को कम करना चाहता हूं। मैं जानना चाहता हूं कि नया आकार पुराने के बराबर है या नहीं। क्या कॉल को अनदेखा किया जाएगा?
ओटी: मुझे लगता है कि '(iCount + 1) * sizeof (MAP)' कम से कम अच्छा दिखता है ... – alk
@alk: आप सही हैं। इसे बदल देगा –
अधिकांश कार्यान्वयनों शायद ही सूचक वापसी, लेकिन कुछ कभी कभी आबंटित स्थान स्थानांतरित करने के लिए भविष्य आवंटन आसान बनाने के लिए एक अवसर के रूप में एक ही आकार के साथ एक 'realloc' का उपयोग हो सकता है। –