好的,我有代码
char *token; char *delimiter = " "; token = strtok(command, delimiter); strcpy(command, token); token = strtok(NULL, delimiter); strcpy(arguments, token);
当我运行它时它给了我EXC_BAD_ACCESS,是的,命令和参数已经定义了。
答案 0 :(得分:4)
为什么在解析command
时将令牌复制到command
?这是一件非常不安全的事情。
你可以这样做:
char *command_tok, *args_tok;
command_tok = strtok(command, delimiter);
args_tok = strtok(NULL, delimiter);
现在command_tok
和args_tok
指向初始字符串的命令和参数部分,假设它正确解析。请注意,它们指向command
缓冲区的一部分,并且没有自己分配的内存。您可以安全地从它们复制到其他缓冲区。