View Full Version : [C] - Passaggio di argv[] a una funzione
Tyler Darden
09-12-2007, 19:55
Sto cercando di fare una bozza, ma ho problemi sui puntatori. Mi date una mano?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int Controllo1(char argv[]);
int main(int argc, char *argv[]){
int i;
switch(argc){
case 2: i = Controllo1(argv[1]);
if(i == 0) printf("OK\n");
else printf("KO\n");
return 0;
default: printf("default\n");
return 0;
}
}
int Controllo1(char argv[]){
if(strcmp(argv[1], "c") == 0)
return 0;
else
return 1;
}
Ciao.
passandogli argv[1] passi un singolo char * alla funzione
ilsensine
09-12-2007, 20:31
argv[1] è un char *, non un char **.
Inoltre tieni conto che argv va da argv[0]...argv[argc-1], quindi argv[1] c'è se argc>1.
Tyler Darden
09-12-2007, 20:39
si si so come lavora argv[] solo che ho problema sul punatore che passo alla funzione o alla strcmp infatti mla shell mi ritorna questo errore:
prova.c: In function ‘Controllo1’:
prova.c:25: warning: passing argument 1 of ‘strcmp’ makes pointer from integer without a cast
ilsensine
09-12-2007, 20:42
In quanto in _quella_ funzione argv[1] è un semplice char.
Tyler Darden
09-12-2007, 20:51
scusa nn doveva essere un singolo char .. ho erroneamente cancellato dove nn dovevo diciamo che ho una stringa "ciao" ecco il codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int Controllo1(char * argv);
int main(int argc, char *argv[]){
int i;
switch(argc){
case 2: i = Controllo1(argv[1]);
if(i == 0) printf("OK\n");
else printf("KO\n");
return 0;
default: printf("default\n");
return 0;
}
}
int Controllo1(char * argv){
if(strcmp(argv[1], "ciao"))
return 0;
else
return 1;
}
mi ritorna questo:
copia.c: In function ‘Controllo1’:
copia.c:25: warning: passing argument 1 of ‘strcmp’ makes pointer from integer without a cast
ilsensine
09-12-2007, 20:54
Continua ad essere un singolo char. C'è ben poca differenza in char *argv e char argv[]
Tyler Darden
09-12-2007, 21:04
ok ok ... sembra che ho risolto. grazie per essermi stato dietro.
ciao.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.