[ mobearette @ 04.04.2010. 10:28 ] @
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?





[ Mihajlo Cvetanović @ 04.04.2010. 18:45 ] @
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.
[ mobearette @ 05.04.2010. 11:18 ] @
Problem rijesen.

Hvala za link :)