000
01.01.2005, 17:15 Uhr
~Wahwah
Gast
|
Hi,
ich hab hier ein Memory Leak Problem mit einer Fuktion.
Der Fuktion wird 'Text' übergeben, dabei ist 'Text' eine Textzeil mit Leerzeichen. Die Funktion trennte die einzelnen Wörter (an den Leerstellen) in einzelne char* s ( parts[0...partscount] ) .
Was muss ich alles löschen, um den Speicher wieder von den Daten der vorherigen Ausführung zu befreien?
| C++: |
char **parts; int partcount;
void getParts(char *Text) {
char *str = Text; partcount = 0; int len = 0, i = 0;
str += strspn(str," "); while (*str) { partcount++; str += strcspn(str," "); str += strspn(str," "); } str = Text; parts = new char*[partcount];
str += strspn(str," "); while (*str) { int len = (int)(strcspn(str," ")); parts[i] = new char[len + 2]; memcpy(parts[i],str,len); parts[i][len] = 0; str += len + strspn(str+len," "); i++; }
}
|
|