मैं दो प्रश्न हैं:क्या कोई आवंटक है जो एलोका का उपयोग करता है और अन्यथा सी ++ एसटीएल अनुपालन करता है?
1) यह एक संभाजक ढेर पर स्मृति को आबंटित करने alloca का उपयोग करता है और नहीं तो सी ++ एसटीएल अनुपालन करता है लागू करने के लिए संभव है?
यदि वहां कोड है, तो आप मुझे URL पर इंगित करके मुझे खुश कर सकते हैं। :-) यदि वहां कोई कोड नहीं है, तो शायद आप आवंटित कार्यों को रद्द कर सकते हैं और हटा सकते हैं?
2) यदि उपरोक्त प्रश्न का उत्तर 'हां' है, तो मैं समझना चाहता हूं कि वर्ग के सदस्यों के लिए ढेर पर स्मृति आवंटित करना संभव है। उदाहरण के लिए, एक
std::vector<int, AllocaAllocator<int> >
पर विचार करने और लगता है कि सदस्य समारोह के एक कॉल 'का आकार परिवर्तन' की इस सदिश कॉल पहले 'पुनःआवंटन' और फिर संभाजक की 'आवंटित'।
जिस आवंटन को आवंटित किया जाता है वह सदस्य कार्य का आकार बदलता है। इसका मतलब यह नहीं है कि आवंटित स्मृति उस फ़ंक्शन कॉल के अंत में स्टैक से हटा दी जाती है?
सधन्यवाद, जोएर्न
आप ऑलोकै के माध्यम से स्टैक पर आवंटित स्थान को स्थानांतरित नहीं कर सकते हैं। एलोका द्वारा आवंटित स्मृति प्राप्त करने का एकमात्र तरीका फ़ंक्शन से बाहर निकलना है। – Patrick
क्या इसका मतलब यह है कि, यदि आप किसी फ़ंक्शन से बाहर निकलते हैं, तो उस कार्य के भीतर आवंटित सभी स्मृति आवंटन के माध्यम से ढेर पर मुक्त हो जाती है? और क्या इसका मतलब यह है कि कक्षा के सदस्यों के लिए स्मृति आवंटित करने के लिए एलोका का उपयोग करना असंभव है? इस प्रकार, क्या आवंटन लिखना असंभव है जो एलोका का उपयोग करता है? – Bjoern
कृपया इस प्रश्न पर एक नज़र डालें: "सी ++ एसटीएल की तरह वेक्टर क्लास की तलाश है लेकिन स्टैक स्टोरेज का उपयोग करना" (http://stackoverflow.com/q/354442) उस विषय पर पहले से ही कुछ मूल्यवान टिप्पणियां हैं। –