Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
好的,所以我有代码
字符 * 令牌; 字符 * 分隔符 = " "; 令牌 = strtok(命令,分隔符); strcpy(命令,令牌); token = strtok(NULL, 分隔符); strcpy(参数,令牌);
当我运行它时它给了我 EXC_BAD_ACCESS ,是的,命令和参数已经定义了。
command为什么在解析时将令牌复制到其中command?这是一件非常不安全的事情。
command
你可以做:
char *command_tok, *args_tok; command_tok = strtok(command, delimiter); args_tok = strtok(NULL, delimiter);
现在command_tok并args_tok指向初始字符串的命令和参数部分,假设它解析正确。请注意,它们指向command缓冲区的一部分并且没有自己分配的内存。您可以安全地从它们复制到其他缓冲区。
command_tok
args_tok