На этот вопрос должно быть легко ответить, но мне труднее найти конкретный правильный ответ в Google или в K & R. Я тоже мог бы не замечать этого, и если да, то, пожалуйста, поправьте меня!
Соответствующий код ниже:
int main(){
char tokens[100][100];
char *str = "This is my string";
tokenize(str, tokens);
for(int i = 0; i < 100; i++){
printf("%s is a token\n", tokens[i]);
}
}
void tokenize(char *str, char tokens[][]){
int i,j; //and other such declarations
//do stuff with string and tokens, putting
//chars into the token array like so:
tokens[i][j] = <A CHAR>
}
Итак, я понимаю, что у меня не может быть char tokens[][]
в моей функции токенизации, но если я вместо нее введу char **tokens
, я получу предупреждение компилятора. Кроме того, когда я пытаюсь поместить char в массив символов с tokens[i][j] = <A CHAR>
, я segfault.
Куда я иду не так? (И сколько способов ... и как я могу это исправить?)
Большое спасибо!