Quando non sto chiamando la stessa funzione nel mio codice tutto funziona bene, ma quando la funzione ritorna da una ricorsione improvvisamente la variabile pch
è NULL:c strtok restituisce NULL dopo il ritorno dalla ricorsione
void someFunction()
{
char * pch;
char tempDependencies[100*64+100];
strcpy(tempDependencies,map[j].filesNeeded);
pch = strtok(tempDependencies,",");
while (pch != NULL)
{
someFunction(); <- if i comment this out it works fine
pch = strtok (NULL, ",");
}
}
Così, per Quando il loop agisce sulla stringa file2,file3,file4
, si divide correttamente file2
e modifica la stringa in file2\\000file3,file4
ma la chiamata successiva a pch = strtok (NULL, ",");
esegue il rendering di pch
in 0x0
. Ci sono cose di cui non sono a conoscenza quando si chiama la ricorsione?