strcpy causando exc_bad_access?
-
13-12-2019 - |
Domanda
Sto facendo uno strumento a riga di comando usando Xcode 4.
ottengo l'errore di exc_bad_access sulla linea con strcpy:
char *invalidOption = NULL;
strcpy(invalidOption, argv[2]);
.
argv [1] IS-V (un'opzione "valida") e ARGV [2] IS -Z (un'opzione "non valida").
Ho quindi bisogno di modificare "InvalidOption" per motivi di visualizzazione (Stampa del messaggio "Errore").
Qualche idea sul perché questo sta accadendo? Per favore fatemi sapere se hai bisogno di ulteriori dettagli.
Soluzione
strcpy
non alloca alcuna memoria per te.Stai cercando di copiare la tua stringa in NULL
, che causa un comportamento indefinito.Hai bisogno di qualcosa come:
char invalidOption[10];
strcpy(invalidOption, argv[2]);
.
Assicurati solo che invalidOption
sia abbastanza grande da contenere l'intera stringa (incluso il terminatore null) o finirai con lo stesso problema.È possibile utilizzare l'allocazione dinamica se necessario.