Это то, что должно быть легко ответить, но мне труднее найти правильный ответ на Google или в K & Р. Я мог бы полностью игнорировать это, тоже, и если да, то пожалуйста, настройте меня прямо!Объявление массива указателей символов (переход arg)
Соответствующий код приведен ниже:
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 в свой массив char с tokens[i][j] = <A CHAR>
, я segfault.
Куда я иду не так? (И сколько способов ... и как я могу это исправить?)
Большое спасибо!
Что такое ? Это общий характер? – John
@ Даниэль, это не поможет - у него есть двумерный массив, а не массив указателей. –
@ Джон - да, я не был уверен, как еще это сказать :) У меня много функций в функции, но это не слишком важно для моего вопроса! – Isaac