Ciao ragazzi, ho una funzione che mi fa vari controlli sui parametri passati al programma da riga di comando.. il prototipo è questo:
int controllaParametri(int argc, char *argv[], char* corpus, char* query, char * stopwords)
dove le ultime variabili sono dichiarate così nel main..
char *corpus, *stopwords, *query;
e questa e la chiamata:
controllaParametri(argc, argv, corpus, query, stopwords)
Dopo la chiamata di funzione corpus query e stopwords dovrebbero contenere alcune stringhe passate da riga di comando di cui non conosco a priori lìordine.... quello che fa la funzione è appunto individuare l'ordine dei parametri (che sono del tipo "-x parametro") e controllare che i parametri siano corretti...
All'interno della funzione, una volta individuata la posizione dei vari parametri la uso per restituirli nelle giuste variabili.....
quindi faccio:
corpus = argv[c+1];
query = argv[q+1];
if(s != 0) stopwords = argv[s+1];
(dove argv[X+1] punta al parametro che voglio memorizzare)
Il problema è che se stampo le variabili (corpus etc etc), dentro la funzione, ottengo quello che mi aspetto.. ma se le stampo nel main per la prima non stampa nulla, per le altre due stampa <null>...
sarà l'ora, o sarò ancora troppo poco pratico di stringhe puntatori e casini vari... ma cosa sbaglio?
![]()