strcpy causando EXC_BAD_ACCESS?
-
13-12-2019 - |
Pergunta
Eu estou fazendo uma ferramenta de linha de comando usando o Xcode 4.
Recebo a EXC_BAD_ACCESS erro na linha com strcpy:
char *invalidOption = NULL;
strcpy(invalidOption, argv[2]);
argv[1], é -v (um "válido" opção) e argv[2]- z (um "inválido" opção).
Eu, então, precisa mudar "invalidOption" para apresentar razões (impressão a "mensagem" erro).
Alguma idéia do porquê isso está acontecendo?Por favor, deixe-me saber se você precisar de mais detalhes.
Solução
strcpy
não alocar memória para você.Você está tentando copiar a seqüência de caracteres para NULL
, o que faz com que indefinido comportamento.Você precisa de algo como:
char invalidOption[10];
strcpy(invalidOption, argv[2]);
Apenas certifique-se de que invalidOption
é grande o suficiente para segurar toda a seqüência de caracteres (incluindo o terminador nulo) ou você vai acabar com o mesmo problema.Você pode usar alocação dinâmica, se necessário.