Я пытаюсь передать адрес strings_line_tokens в split_string. Я бы подумал, что мне понадобится «&» для адреса, тогда один из этих методов будет работать.передавая адрес массива строк функции
static void split_string(const char *buffer, size_t buflen, char ***strings_line_tokens)
static void split_string(const char *buffer, size_t buflen, char **strings_line_tokens)
static void split_string(const char *buffer, size_t buflen, char **strings_line_tokens[])
static void split_string(const char *buffer, size_t buflen, char ***strings_line_tokens[])
Это мое объявление и где я пытаюсь передать адрес функции.
char *strings_line_tokens[503] = {0};
split_string(line, strlen(line)+1, &strings_line_tokens);
Я продолжаю получать некоторые изменения этой ошибки.
warning: passing argument 3 of ‘split_string’ from incompatible pointer type main.c:73: note: expected ‘char ***’ but argument is of type ‘char * (*)[503]’
Моя цель после того, как правильно передать переменную моей функции, это сделать это. И после этого я хочу иметь возможность использовать эти значения в основном.
strings_line_tokens[*big_boy_counter] = malloc(strlen(ptr[i])+1);
strcpy(strings_line_tokens[*big_boy_counter], ptr[i]);
Можете ли вы правильно отформатировать код? –
Хм, совершенно уверен, что это первый четырехзвездочный код, который я когда-либо видел. Ну, если быть трехзвездным программистом, это не комплимент, что бы это было для четырехзвездочного программиста? И обратите внимание, что нет «массива строк», но «массив указателей на' char' » – Olaf
Итак, что вы ожидаете от вас, передаете указатель на массив, где ожидается указатель на ...? Массив не является указателем или наоборот. – Olaf