1

好的,所以我有代码

字符 * 令牌;
字符 * 分隔符 = " ";

令牌 = strtok(命令,分隔符);

strcpy(命令,令牌);

token = strtok(NULL, 分隔符);
strcpy(参数,令牌);

当我运行它时它给了我 EXC_BAD_ACCESS ,是的,命令和参数已经定义了。

4

1 回答 1

4

command为什么在解析时将令牌复制到其中command?这是一件非常不安全的事情。

你可以做:

char *command_tok, *args_tok;

command_tok = strtok(command, delimiter);
args_tok = strtok(NULL, delimiter);

现在command_tokargs_tok指向初始字符串的命令和参数部分,假设它解析正确。请注意,它们指向command缓冲区的一部分并且没有自己分配的内存。您可以安全地从它们复制到其他缓冲区。

于 2010-03-26T13:42:40.463 回答