所以我有以下函数,该函数将输入的char *用空格分隔,并将每个char *添加到最终返回的char **中。
char **split_input(char *input) {
char **command = (char **)malloc(8 * sizeof(char *));
const char *separator = " ";
char *parsed;
int index = 0;
parsed = strtok(input, separator);
while (parsed != NULL) {
command[index] = parsed;
index++;
parsed = strtok(NULL, separator);
}
command[index] = NULL;
return command;
}
我想知道是否有任何方法可以获取返回的char **所包含的char *数量。
答案 0 :(得分:0)
我想知道是否有任何方法可以获取返回的
char*
所包含的char**
的数量。
鉴于您显示的代码,只有一种方法-调用方将不得不迭代数组计数元素,直到其到达末尾的NULL
。
否则,请调整函数以将数组计数与数组指针一起返回,作为可选输出参数,或者使用std::pair<char**, int>
或struct { char**; int; }
作为返回值。