Pointer ve Dinamik Dizi
Coddy'nin C++ Journey'sinin Mantık & Akış bölümünün bir parçası — ders 56 / 56.
Görev
KolayEsnek bir sayı depolama ve işleme sistemi oluşturarak dinamik bellek yönetimini gösteren bir program oluşturun. Bu görev; dinamik diziler, bellek ayırma, dizi manipülasyonu ve uygun bellek temizleme konularındaki anlayışınızı test edecektir.
Aşağıdaki girdiler sağlanacaktır:
- Saklanacak tam sayı adedini temsil eden bir tam sayı
size - Ardından dinamik dizide saklanacak sayıları temsil eden
sizeadet tam sayı
Programınız şunları yapmalıdır:
- Girdiden boyutu okumalı
- Belirtilen boyutta
new[]kullanarak dinamik olarak bir tam sayı dizisi ayırmalı - Girdiden tam sayıları okumalı ve bunları dinamik olarak ayrılmış dizide saklamalı
- Dizideki tüm sayıların toplamını hesaplamalı
- Dizideki maksimum değeri bulmalı
- Sonuçları belirtilen formatta yazdırmalı
delete[]kullanarak belleği uygun şekilde serbest bırakmalı
Aşağıdaki tam çıktı formatını kullanın:
Array size: [size]
Sum: [sum_of_all_numbers]
Maximum: [maximum_value]Dinamik bellek ayırmanın, boyutu çalışma zamanında kullanıcı girdisine göre belirlenen diziler oluşturmanıza olanak tanıdığını unutmayın. Diziyi ayırmak için new int[size] kullanın ve elemanlara dizi notasyonu array[index] kullanarak erişin. Diziyi kullanmayı bitirdikten sonra, ayrılan belleği boşaltmak ve bellek sızıntılarını önlemek için delete[] array çağırmalısınız. Dizi yığında (heap) bulunur ve siz onu açıkça serbest bırakana kadar varlığını sürdürür.
Kendin dene
#include <iostream>
using namespace std;
int main() {
// Dizinin boyutunu oku
int size;
cin >> size;
// YAPILACAK: Kodunuzu buraya yazın
// 1. new[] kullanarak dinamik olarak bir dizi tahsis edin
// 2. Tam sayıları okuyun ve bunları dizide saklayın
// 3. Tüm sayıların toplamını hesaplayın
// 4. Maksimum değeri bulun
// 5. delete[] kullanarak belleği geri vermeyi unutmayın
// Sonuçları yazdır (gerçek değişkenlerle değiştirin)
cout << "Array size: " << size << endl;
cout << "Sum: " << /* toplam değişkeni */ << endl;
cout << "Maximum: " << /* maksimum değişkeni */ << endl;
return 0;
}Mantık & Akış bölümündeki tüm dersler
1İşaretçiler ve Bellek
İşaretçi Nedir?Adres OperatörüDereference OperatörüNull İşaretçilerİşaretçiler ve Diziler'new' ile Dinamik Bellek'delete' ile Belleği Serbest BırakmaÖzet - İşaretçi Pratiği2Vektörler (Dinamik Diziler)
std::vector'a GirişBir Vektör OluşturmaEleman EklemeElemanlara ErişmeVektör BoyutuFor Döngüsü ile YinelemeAralık Tabanlı For DöngüsüEleman SilmeÖzet - Vektör İşlemleri3Proje: Görev Listesi Aracı
Projeye Genel BakışGörev Ekleme