Access violation write to 0x33000004 when calling the delete operation

 

Can someone help why I am getting the Access violation write to 0x33000004 in my program

tthis is the code inside the OnTimer event.

//create the signal pointer

CSignalData *signal = new CSignalData();

//read and populate the values

signalSource.Read(Symbol(), signal);

//read values from signal and use them

//some times the access violation is happening here when i read the values

//finally delete the value

//mostly happening here when i try to delete

if (CheckPointer(signal)!=POINTER_INVALID){

delete (signal);

}

signal = NULL;


 
tinashe:

Can someone help why I am getting the Access violation write to 0x33000004 in my program

tthis is the code inside the OnTimer event.


Who knows ? We don't have the code CSignalData class code.

Can you show the signature of this method CSignalData.Read() ?

 
tinashe:

Can someone help why I am getting the Access violation write to 0x33000004 in my program

tthis is the code inside the OnTimer event.


The CSignalData class is very simple : (AT first I was using the struct instead of the class, and getting the same problem)

class CSignalData{
  private:
    int m_Type;
    double m_Price;
    datetime m_ExpiryDate;
    datetime m_Timestamp;
    double m_StopLoss;
    double m_TakeProfit;
    ulong m_Ticket;
    SIGNAL_STATUS m_Status;
    string m_Source;
    string m_SymbolCode;
    

  public:
    CSignalData();
    ~CSignalData();
    
    int Type(){return m_Type;};
    double Price(){return m_Price;};
    datetime ExpiryDate(){return m_ExpiryDate;};
    datetime Timestamp(){return m_Timestamp;};
    double StopLoss(){return m_StopLoss;};
    double TakeProfit(){return m_TakeProfit;};
    ulong Ticket(){return m_Ticket;};
    SIGNAL_STATUS Status(){return m_Status;};
    string Source(){return m_Source;};
    string SymbolCode(){return m_SymbolCode;};

    void Type(int type){m_Type=type;};
    void Price(double price){m_Price=price;};
    void ExpiryDate(datetime expiryDate){m_ExpiryDate=expiryDate;};
    void Timestamp(datetime timestamp){m_Timestamp=timestamp;};
    void StopLoss(double stopLoss){m_StopLoss=stopLoss;};
    void TakeProfit(double takeProfit){m_TakeProfit=takeProfit;};
    void Ticket(ulong ticket){m_Ticket=ticket;};
    void Status(SIGNAL_STATUS status){m_Status=status;};
    void Source(string source){m_Source=source;};
    void SymbolCode(string symbolCode){m_SymbolCode=symbolCode;};

    
  };


The read method is another class defined as

//global
CFileBasedSignal * signalSource = NULL;

//inside init
signalSource = new CFileBasedSignal("directory");

//the signature
void Read(string symbol,CSignalData *signal);

 
tinashe:

The CSignalData class is very simple : (AT first I was using the struct instead of the class, and getting the same problem)


The read method is another class defined as


I am getting this error more often that I want to, something is really broken here, either my logic or platform any thoughts?
Reason: