He usado el comando strtock en C muchísimas veces y nunca se me había planteado un problema del estilo. El caso es que lo estaba usando para leer líneras de un fichero donde el caracter que separa los tokens es ; .
Creo un bucle diciendo que cuando no haya más tokens(null) pues finalice.
El tema, es que cada token, pues tengo que tratarlo...guardarlo, etc etc... llamadas a funciones.
Pues de forma "misteriosa" cuando llamo a una función en concreto,
hace que no haya más tokens de modo que deja de analizar el resto de la línea.
A esa función, la única relación que hay con strtock es que le paso una copia del token (no el puntero original).
Cuando la función en cuestión la quito, strtock funciona perfectamente y lee todos los tokens.
Muestro parte del código para hacer una idea:
Código
char *ptr; char delimitador[] = ";"; char retorno_nombre[20]; char token_extraido[20]; int contador=0; do{ ... if(contador == 0) //Funciones , inclusive la misma que en el siguiente if da problemas. //contador ++ else if(contador ==1){ contador++; } else if(contador >=2) //Otras funciones. Aqui no entra ya como tenga la funcion buscarNombre del anterior if.
¿Alguna vez a alguien le ha pasado algo parecido? ¿Saben porqué podría ser si no hay relación directa entre el puntero ptr y la llamada o retorno de esa función?
Un saludo, y muchas gracias de antemano.