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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top