मैंने एक प्रश्नोत्तरी पर ठोकर खाई जिसमें विभिन्न आकारों के साथ सरणी घोषणा शामिल थी। पहली बात जो मेरे दिमाग में आई वह यह है कि मुझे 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);
) का उपयोग करें ।