delete [] chararray _crtisvalidheappointer(pUserData)



  • Hi Leute,

    ich bekomme folgende Exception bei verlassen dieer Funktion:
    _crtisvalidheappointer(pUserData)
    Und zwar entsteht das ganze beim delete[] in der For Schleife erst beim 3.Durchlauf.
    Der Pointer ist mit "11" gefüllt, wo liegt denn hier der Fehler?
    Aufruf mit der Funktion mit z.B. "192.168.12.11".

    Wäre super wenn mir hier jemand helfen könnte!
    Vielen Dank!!

    BOOL CnFileClass::SplitIP(char *pIP)
    {
       BOOL bresult=FALSE;
       int nHosts;
       int nPos=0;
       int nSize=0;
       int nOctets=4;
    
       char **poctetsArray;
       poctetsArray=new char*[nOctets]; //Allocate memory for the array
       for (nPos=0;nPos<nOctets;nPos++)
       {
    	  poctetsArray[nPos]=new char[256];  //Resize each array
    	  poctetsArray[nPos][0]=0;
       }
       char *psepbetween=new char[256];
       char *pchr=new char[256];
    
       strcpy(psepbetween,".");
       nPos=0;
    
       char *temp=new char[256];
       for (pchr=strchr(pIP,psepbetween[0]);pchr!=NULL;pchr=strchr(pIP,psepbetween[0]))
       {
    	 nSize=(strlen(pIP)-strlen(pchr));
    	 strncpy(poctetsArray[nPos],pIP,nSize);
         poctetsArray[nPos][nSize]=0;
    	 pIP=pchr+1;
    	 nPos++;
    	 pchr=NULL;
       }
       poctetsArray[nPos]=pIP;
    
       for (nPos=0;nPos < nOctets; nPos++)
    	   TRACE("%s",poctetsArray[nPos]);
    
       nHosts=0;
    
       delete [] pchr;
       for (nPos=0;nPos <nOctets;nPos++)
    	   delete [] poctetsArray[nPos];            <------ FEHLER bei 3. Pos
    
       delete [] poctetsArray;
       delete [] psepbetween;
    
       return bresult;
    }
    


  • Fehler gefunden kann geschlossen werden.


Anmelden zum Antworten