Ciao ragazzi, scusate per il titolo un po' generico ma è il più appropiato che mi veniva in mente.
Il problema è questo:
In un file ci sono queste 5 righe:
codice:
C:\windows\notepad.exe::134
C:\windows\include.exe::178
C:\fileaaaaa.exe::178
C:\::8
C:\windows\notepad.exe::66
Con questa funzione separo la path dal resto (::blablabla)e la assegno ad un tipo string.
Funzione:
Codice PHP:
string PrendiPath(char RigaDaAnalizzare[1000])
{
string str_Path;
for(int FOR1 = 0, FINEFOR1 = 0; FOR1 < strlen(RigaDaAnalizzare) && FINEFOR1 < 1; FOR1++)
{
if(RigaDaAnalizzare[FOR1] == ':' && RigaDaAnalizzare[FOR1 + 1] == ':')
{str_Path.assign(RigaDaAnalizzare,0 ,FOR1); FINEFOR1 = 1; }
//quando trova "::" copia in str_Path il codice che precede"::"
}
return str_Path;
}
La funzione lavora perfettamente per le prime quattro righe di file passategli, ma quando arriva all'ultima: C:\windows\notepad.exe::66 va in crash.
Usando il debug sono arrivato a concludere che il crash è nel return della funzione e penso che sia dovuto al fatto che la stringa precedente era
e quindi la memorua riservata per il return della funzione si è "accorciata" e poi quando la funzione ha ritornato (che è una stringa con più caratteri della precedente)
codice:
C:\windows\notepad.exe::66
la memoria non bastava ed ecco il CRASH!!!
Come posso fare? Help