Этот вопрос вполне может уже ответили, так что я объясню очень просто:C: Передача массива указателей на структуры в качестве аргумента
Я определил «список» структуру. В отдельной функции я инициализируется массив под названием «стол»:
int table_size = 500;
struct list* table[table_size];
Это будет хранить указатели на эти «список» структуры. Позже в функции я передать эту таблицу в другую функцию в качестве третьего аргумента:
generate(word, table_size, table);
Эта функция «генерировать» определяется следующим образом:
void generate(char *str, int table_size, struct list* table)
И когда я пытаюсь скомпилировать, Я получаю следующее сообщение об ошибке:
проходящего аргумент 3 из «генерировать» от несовместимого типа указателя [-Werror]
Примечание: ожидаемый «STRU ct list * ', но аргумент имеет тип' struct list ** '
Спасибо всем, кто может объяснить, что происходит не так.
C++ не имеет массивов переменной длины и не нуждается в ключе '' struct', когда в объявлениях переменных. Используйте только тег языка. –
Изучите основные понятия языка из книг, а не из проб и ошибок и стека. – SergeyA
Хорошо, это тоже работает, поэтому мне всегда нужно добавлять пустые квадратные скобки при передаче массива? – James