Я предполагаю, что вектор будет содержать строки, так как это имеет смысл с подписью, которую вы описываете.
Поскольку вы также не дали никакого кода, я предполагаю, что функция, которую нужно вызвать, выглядит примерно так:
/* This function creates a vector with room for 'length' strings and places it in 'vvar' */
void create_string_vector(int /* in */ length, char*** /* out */ vvar);
Поскольку функция ожидает, что она сможет изменить vvar
и отразить это изменение в вызывающей стороне, вы должны передать адрес некоторой переменной, поэтому вызов должен выглядеть как
create_string_vector(my_length, &my_var);
Это заботится об одном уровне указателей.
Это оставляет только вопрос о том, как объявить my_var
. Поскольку это будет вектор или массив неизвестного размера, вам необходимо объявить его как указатель. И строка также является своего рода массивом символов неизвестного размера, поэтому для этого вам также понадобится указатель. Это приводит к объявлению
char* *my_var;
Доступ к элементам является простой частью: вы можете рассматривать my_var
как массив:
my_var[0] = "Hello";