Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

access violation unutar klase

[es] :: C/C++ programiranje :: C/C++ za početnike :: access violation unutar klase

[ Pregleda: 2512 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mobearette
Tuzla

Član broj: 256517
Poruke: 2
92.36.201.*



Profil

icon access violation unutar klase04.04.2010. u 10:28 - pre 170 meseci
Vec duze vrijeme pokusavam rijesiti ovaj problem. Kod se normalno kompajlira, ali kod pokretanja programa dobijem sljedecu gresku
"Unhandled exception at 0x00c541f6 in ex2_vjezba.exe: 0xC0000005: Access violation reading location 0xccccccf8."

Ovo je kod:

Code:

#ifndef SVGLISTNODE_H_INCLUDED
#define SVGLISTNODE_H_INCLUDED

#include <string>
#include "SVGObject.h"

class SVGListNode
{
    private: 
        SVGListNode* prev_node_; 
        SVGListNode* next_node_;
        std::string id_; 
        SVGObject* object_; 
    public:
        SVGListNode() {} 
        virtual ~SVGListNode() {}
        
        SVGListNode(SVGListNode* prev_node, const std::string& id, SVGObject* object) : 
            id_(id), object_(object)
    {
        prev_node_= prev_node; 
        next_node_ = this;    
         
      }
    
    void setObject(SVGObject* object) {object_ = object; }
    SVGObject* getObject() const {return object_; }
    
        SVGListNode* getPrevNode() const {return prev_node_; } 
        void setPrevNode(SVGListNode* node) {prev_node_ = node; }
        
        SVGListNode* getNextNode() {return this; }
        void setNextNode(SVGListNode* node) { next_node_ = node; }
        
        std::string getId() const {return id_; }

}; 


#endif 






Ista greska je prijavljivana u konstruktoru, gdje je umjesto
Code:
  next_node_ = this;
stojalo
Code:
 prev_node->next_node_ = this; 


kao i u metodi getNextNode() koja je tada vracala next_node_. Sada taj getter vraca this pointer, i greske vise nema.
(sto je samo prelazno rjesenje, naravno)

Sada tu gresku dobijem kod metode getObject().

Nije mi jasno otkud "access violation" kada pokusavam pristupi member varijabli te klase.
Gdje pravim gresku?





 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: access violation unutar klase04.04.2010. u 18:45 - pre 170 meseci
Lokacija 0xccccccf8 je vrlo specifična. Tu je u pitanju neinicijalizovani pointer na objekat. U Debug konfiguraciji sve što programer nije sam inicijalizovao dobija vrednost 0xCC u svakom svom bajtu memorije. Na sledećem linku možeš da pronađeš više informacija, http://www.codeguru.com/Cpp/W-...2/tutorials/article.php/c9535/

Imaš neki pointer koji nije inicijalizovan, to jest pointer pokazuje na nepostojeći objekat.
 
Odgovor na temu

mobearette
Tuzla

Član broj: 256517
Poruke: 2
92.36.203.*



Profil

icon Re: access violation unutar klase05.04.2010. u 11:18 - pre 170 meseci
Problem rijesen.

Hvala za link :)
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: access violation unutar klase

[ Pregleda: 2512 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.