わかりました、それで私はコードを持っています
char *トークン; char *delimiter = " "; トークン = strtok(コマンド、区切り文字); strcpy(コマンド、トークン); トークン = strtok(NULL、区切り文字); strcpy(引数、トークン);
そして、実行するとEXC_BAD_ACCESSが表示されます。はい、コマンドと引数は既に定義されています。
command
解析中にトークンをコピーするのはなぜcommand
ですか? それは非常に危険なことです。
できるよ:
char *command_tok, *args_tok;
command_tok = strtok(command, delimiter);
args_tok = strtok(NULL, delimiter);
ここで、正しく解析されると仮定して、最初の文字列のコマンドと引数の部分をポイントしますcommand_tok
。args_tok
これらはバッファの一部を指してcommand
おり、独自に割り当てられたメモリを持っていないことに注意してください。それらから他のバッファに安全にコピーできます。