14/01/13 22:36
GrG
Salve,
avevo un problema che non mi riesco a spiegare.. ho questo codice:
strcpy mi dovrebbe copiare la stringa passata come secondo argomento in path, eppure l'applicazone crasha.. windows infatti mi dice che a.exe ha smesso di funzionare
Quindi è come se strcpy fallisse ma proprio non mi spiego perchè, qualcuno mi può chiarire?
EDIT:
ho scoperto che mettendo:
scanf("%s", &nome);
al posto di: scanf("%s", nome);
funziona, ma come mai? nome è una variabile di tipo puntatore char, da quel che ne so non andrebbe la & poichè è un puntatore..
altro fatto strano è che volevo usare strcat subito dopo ma sia con & o senza & non funziona... esempio:
Qualcuno mi potrebbe spiegare un pò meglio cosa sbaglio?
p.s. Non posso usare funzioni alternative perchè l'università mi obbliga ad usare queste
avevo un problema che non mi riesco a spiegare.. ho questo codice:
#include <stdio.h> #include <string.h> #include <stdio.h> typedef char* string; void main() { string nome; int anno; printf("Inserire nome file: "); scanf("%s", nome); char path[100]; strcpy(path, "C:\ProveC\es.file_studenti\asd.txt"); printf("%s", path); printf("\n OK?"); }
strcpy mi dovrebbe copiare la stringa passata come secondo argomento in path, eppure l'applicazone crasha.. windows infatti mi dice che a.exe ha smesso di funzionare
Quindi è come se strcpy fallisse ma proprio non mi spiego perchè, qualcuno mi può chiarire?
EDIT:
ho scoperto che mettendo:
scanf("%s", &nome);
al posto di: scanf("%s", nome);
funziona, ma come mai? nome è una variabile di tipo puntatore char, da quel che ne so non andrebbe la & poichè è un puntatore..
altro fatto strano è che volevo usare strcat subito dopo ma sia con & o senza & non funziona... esempio:
#include <stdio.h> #include <string.h> #include <stdio.h> typedef char* string; void main() { string nome; int anno; char path[100]; printf("Inserire nome file: "); scanf("%s", &nome); strcpy(path, "C:\ProveC\es.file_studenti\"); //strcat(path, nome); <- Non funziona :/ printf("%s", path); printf("\n OK?"); }
Qualcuno mi potrebbe spiegare un pò meglio cosa sbaglio?
p.s. Non posso usare funzioni alternative perchè l'università mi obbliga ad usare queste
Ultima modifica effettuata da GrG 14/01/13 22:56
aaa