मैंने एक प्रश्नोत्तरी पर ठोकर खाई जिसमें विभिन्न आकारों के साथ सरणी घोषणा शामिल थी। पहली बात जो मेरे दिमाग में आई वह यह है कि मुझे newइस तरह से कमांड के साथ डायनेमिक एलोकेशन का उपयोग करना होगा :
while(T--) {
int N;
cin >> N;
int *array = new int[N];
// Do something with 'array'
delete[] array;
}
हालाँकि, मैंने देखा कि समाधान में से एक ने निम्नलिखित मामले की अनुमति दी:
while(T--) {
int N;
cin >> N;
int array[N];
// Do something with 'array'
}
थोड़ी खोजबीन के बाद मैंने पढ़ा कि g ++ इसे अनुमति देता है, लेकिन इसने मुझे यह सोच कर रखा है कि किन मामलों में गतिशील आवंटन का उपयोग करना आवश्यक है? या यह है कि संकलक इसे गतिशील आवंटन के रूप में अनुवाद करता है।
डिलीट फंक्शन शामिल है। हालाँकि, ध्यान दें कि यहाँ प्रश्न मेमोरी लीक के बारे में नहीं है।
new OBJसीधे आवंटित करना अभी भी आम बात है ।
std::vectorइसके बजाय (std::vector<int> array(N);) का उपयोग करें ।