000
24.05.2007, 11:39 Uhr
jaydee
|
Habe in folgendem Code irgendwo ein Speicherleck und kann es nicht finden. Im Debugmodus ist noch alles okay doch wenn ich das Release erstelle meldet mir Deleaker Speicherlecks.
Hier der Code:
C++: |
#include <string>
int CRCCheck();
int main() { printf("Das Ergebnis ist: %i",CRCCheck()); } //main
int CRCCheck() { char Line[] = "$GPGGA,090401,5349.506,N,01030.245,E,1,06,2.6,30.6,M,44.7,M,,*77"; char Dollar[] = "$"; char Star[] = "*";
char *pdest; int DollarPos; int StarPos; int CRC = 0; //Calculated Checksum int NMEACRC; //Checksum from NMEA GPS Log char Checksum[4];
pdest = strstr( Line, Dollar ); if (pdest == NULL) return -2; //Dollar sign not found DollarPos = (int)(pdest - Line + 1); if (DollarPos != 1) return -1; //Dollar sign not the first character pdest = strstr( Line, Star ); if (pdest == NULL) return -3; //Star sign not found StarPos = (int)(pdest - Line + 1); Checksum[0] = 0x30; //0 Checksum[1] = 0x78; //x Checksum[2] = Line[StarPos]; Checksum[3] = Line[StarPos + 1];
NMEACRC = strtol(Checksum,NULL,16); for (int i = 1; i <= StarPos - 2; i++) { CRC ^= Line[i]; }
if (CRC == NMEACRC) return 0; //no failure if (CRC != NMEACRC) return -4; //Checksum doesn't match
return 7; //other failure } // CRCCheck
|
Vielen Dank für eure Hilfe |