Speicherfehler



  • Hallo,
    will ein Programm schreiben dass nur eine bestimmte Zahl von Linien in einem Bereich zulässt. Aber irgendwie funktioniert das nicht. Wenn bereits eine Linie gezeichnet wird kommt schon eine Fehlermeldung. Wäre nett wenn mir einer helfen könnte. Der Debugger hilft mir auch nicht.

    Der Quellcode:

    //In der Doc
    // Attribute
    public:
    CPoint m_punkte[100][2];
    int m_iAnzahl;
    void insertLinie (CPoint start, CPoint ende);

    void CSDIDoc::insertLinie(CPoint start, CPoint ende)
    {
    if(m_iAnzahl<100){
    m_punkte[m_iAnzahl][0] = start; // Zeigt Debugger als Fehler an
    m_punkte[m_iAnzahl][1] = ende; // Zeigt Debugger als Fehler an
    }
    else {
    AfxMessageBox("Kein Platz");
    }
    }

    //In der View
    // Implementierung
    public:
    CPoint m_px[2];

    void CSDIView::OnLButtonDblClk(UINT nFlags, CPoint point)
    // soll bei Doppelklick Punkte verbinden u. zeichnen

    CClientDC dc(this);

    if(m_px[0].x==0 && m_px[0].y==0){
    m_px[0]=point;
    }
    else {
    m_px[1]=point;

    dc.MoveTo(m_px[0]);
    dc.LineTo(m_px[1]);
    GetDocument()->insertLinie(m_px[0],m_px[1]);
    Invalidate();
    m_px[0].x=0;
    m_px[0].y=0;
    m_px[1].x=0;
    m_px[1].y=0;
    }
    }



  • Wo wird denn "m_iAnzahl" gesetzt ?



  • Soll m_iAnzahl auf 0 gesetzt werden oder ...?

    Ich hab keine Ahnung ich habe das Programm nicht geschrieben. Es sollte aber funktionieren. Der Speicherfehler sollte eigentlich auch nicht auftreten. Deswegen frage ich ja.


Anmelden zum Antworten