Código:
Lo que estoy tratando de hacer es pasarle todas las variables del programa principal a la función procesarCadena por referencia para que los cambios queden registrados en las variables. void procesarCadena(char Nombre[], int* FechaI, int* FechaF, int Estados[], char cadena[]){ int aux[30]; int i=0; int j=0; int h=0; while(cadena[i]!='\0'){ switch(cadena[i]){ case ';': Estados[j]=atoi(aux); j++; break; case '[': break; case ']': if(Nombre==null){ strcpy(Nombre, aux); aux[0]='\0'; } else if(FechaI == null){ FechaI=atoi(aux); aux[0]='\0'; } else { FechaF=atoi(aux); aux[0]='\0'; } break; case '{': break; case '}': Estados[j]=atoi(aux); j++; aux[0]='\0'; break; default: aux[h]=cadena[i]; h++; break; } } int main(int argc, char *argv[]) { char* arrayL[12]; char TipoProceso[80]; int FechaI; int FechaF; int Estados[100]; procesarCadena(TipoProceso, &FechaI, &FechaF, Estados, arrayL[0]); return 0; }
La función va recorriendo una cadena que se encuentra en un array de cadenas que yo le paso y va estrayendo los datos de ella y guardándolos en las variables correspondientes.
Preguntas:
¿Están bien pasadas las variables?
Es decir, cuando yo quiero pasar un array, lo único que tengo que hacer es poner el nombre ¿no?, porque así le estoy pasando el puntero a la primera posición del array. No necesita ampersan ni movidas raras.
¿Por qué narices no me compila?
Gracias al alma caritativa que me ayude y lo siento por el mensaje tan largo.