আমি এমন একটি কুইজে হোঁচট খেয়েছি যার সাথে বিভিন্ন আকারের অ্যারে ঘোষণা জড়িত। আমার মনে যে প্রথম জিনিসটি এসেছিল তা হ'ল 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'
}
কিছুটা গবেষণার পরে আমি পড়লাম যে জি ++ এটির অনুমতি দেয় তবে এটি আমাকে ভাবতে থাকে, কোন ক্ষেত্রে গতিশীল বরাদ্দ ব্যবহার করা দরকার? বা এটি যে সংকলকটি এটিকে গতিময় বরাদ্দ হিসাবে অনুবাদ করে?
মুছে ফাংশন অন্তর্ভুক্ত করা হয়। নোট, তবে, যে এখানে প্রশ্ন মেমরি ফাঁস সম্পর্কে নয়।
new OBJ
সরাসরি অনুরোধ করে অবজেক্টগুলি বরাদ্দ করা এখনও সাধারণ অভ্যাস ।
std::vector
পরিবর্তে (std::vector<int> array(N);
) ব্যবহার করুন ।