C++ Pointer Konusunda Yardım

+8 oy
19 Mart 2015 misafir   sordu

C++ Pointer Konusunda Yardıma İhtiyacım var.

http://pastebin.com/4Di28s5d

Kodlarım bunlar ve 53. satırda unable to read memory hatası alıyorum yardımcı olabilecek olan varmı?

2 Cevap

+1 oy
20 Mart 2015 Natgho   cevapladı
Merhaba, KYK'Da olduğumdan pastebin engelli göremedim, net yavaş olduğundan VPN ile giremedim, başka bir yere atarmısınız.
0 oy
20 Mart 2015 misafir   cevapladı
#include <iostream>
#include <string>
#include "locale.h"

using namespace std;

class hesap
{
private:
    int id;
    string ad_soyad;
    double bakiye;

public:
    hesap()
    {
        id = 0;
        ad_soyad = "Değer Girilmedi";
        bakiye = 0.0;
    }

    void deger()
    {
        cout << "Değerleri Girin:\n";
        cout << "ID:\t";
        cin >> id;
        cout << "İsim:\t";
        cin >> ad_soyad;
        cout << "Bakiye:\t";
        cin >> bakiye;
    }

    double paraMiktari()
    {
        return bakiye;
    }

    void paraEkle(double gelenPara)
    {
        bakiye += gelenPara;
    }

    void paraCek(double cekilenPara)
    {
        bakiye -= cekilenPara;
    }

    void gosterr()
    {
        cout << "ID:\t\t" << id << endl << "Ad Soyad:\t" << ad_soyad << endl << "Bakiye:\t\t" << (double)bakiye << endl;
    }

    int idAl(int gelenID)
    {
        if (gelenID == this->id)
            return this -> id;
        else
            return 0;
    }
};

class Hesap_Dizi
{
private:
    int sayi;
    hesap** dizi;

public:
    Hesap_Dizi()
    {
        dizi = NULL;
        sayi = 0;
    }

    void ekle(int k)
    {
        sayi = k;
        dizi = new hesap*[k];

        for (int i = 0; i < sayi; i++)
        {
            dizi[i] = new hesap();
        }
        for (int i = 0; i < sayi; i++)
        {
            dizi[i]->deger();
        }
    }

    void sil(int a, int silID)
    {
        for (int i = 0; i < a; i++)
        {
            if (!dizi[i]->idAl(silID))
            {
                dizi[i] = new hesap();
            }
        }
    }

    void paraEkle(int a, int ekleID, double gelenPara)
    {
        for (int i = 0; i < a; i++)
        {
            int id2;

            id2 = dizi[i]->idAl(ekleID);

            if (id2 != 0)
            {
                dizi[i]->paraEkle(gelenPara);
            }
        }
    }

    void paraCek(int a, int cekID, double cekilenPara)
    {
        for (int i = 0; i < a; i++)
        {
            int id2;
            double para2;

            id2 = dizi[i]->idAl(cekID);

            if (id2 != 0)
            {
                para2 = dizi[i]->paraMiktari();

                if (cekilenPara <= para2)
                {
                    dizi[i]->paraCek(cekilenPara);
                }
                else
                {
                    cout << "Bakiyeniz Yeterli Değil!\n";
                }
            }
        }
    }

    void goster()
    {
        for (int i = 0; i < sayi; i++)
        {
            dizi[i]->gosterr();
        }
    }

    ~Hesap_Dizi()
    {
        if (dizi != NULL)
        {
            delete dizi;
        }
    }
};

int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "turkish");

    int sayi, a, islemID;
    double gelenPara, cekilecekPara;

    Hesap_Dizi b;

    /*islemID = &islemIDp;*/

    while (true)
    {
        cout << "Yapmak istediğiniz işlemi seçin:\n" << "1. Hesap Ekleme\t" << "2. Hesap Silme\t\n" << "3. Para Ekleme\t" << "4. Para Çekme\n";
        cout << "5. Bilgileri Göster\t" << "6. Çıkış\n";
        cin >> a;

        if (a == 1)
        {
            cout << "Kaç kişilik hesap tutacaksınız?\n";
            cin >> sayi;
            b.ekle(sayi);
        }
        else if (a == 2)
        {
            cout << "Silinecek Hesabın ID değerini Girin:\n";
            cin >> islemID;
            b.sil(sayi, islemID);
        }
        else if (a == 3)
        {
            cout << "Para Eklenecek Hesabın ID değerini Girin:\n";
            cin >> islemID;
            cout << "Eklenecek Para Miktarını Girin:\n";
            cin >> gelenPara;
            b.paraEkle(a, islemID, gelenPara);
        }
        else if (a == 4)
        {
            cout << "Para Çekilecek Hesabın ID değerini Girin:\n";
            cin >> islemID;
            cout << "Çekilecek Para Miktarını Girin:\n";
            cin >> cekilecekPara;
            b.paraCek(a, islemID, cekilecekPara);
        }
        else if (a == 5)
        {
            b.goster();
        }
        else if (a == 6)
        {
            break;
        }
    }

    system("PAUSE");
    return EXIT_SUCCESS;
}

 

Kodlarım bunlar  buradan herhangi bir sıkıntı olmaz heralde :)
...