Я новичок в программировании и на всю жизнь я не могу понять эту проблему.Я пытаюсь создать функцию, которая токенизирует строку, используя пробел в качестве разделителя и указатель на строку и количество токенов в качестве параметра.Функция должна возвращать массив символов с символьной строкой Ex.превращение "(2 + (5 - 3))" в {"(", "2", "+", "(", "5", "-", "3", ")", ")"},Мой код выглядит следующим образом:
char** get_tokens(char* str, int n_tokens)
{
char *new;
int i = 0;
char ** new_arr = malloc(sizeof(char) * n_tokens);
if(new_arr == NULL)
return NULL;
new = strtok(str, " ");
while(new != NULL)
{
printf("%s\n", new);
new = strtok(NULL, " ");
}
char** p;
return p;
}
Строка char ** p является просто кодом заполнения без ошибок компиляции.
Мне кажется, я правильно использовал strtok (), но у меня возникли проблемы с пониманием типа возвращаемого значения.Я не уверен в том, как использовать возвращение char ** и получить массив со строкой токена для дальнейшего использования.Если кто-то может помочь объяснить указатель на тип возвращаемого указателя и способы помочь сделать мой код делать то, что я хочу, был бы очень признателен.