C ++在char **中获取char *的数量

时间:2018-11-28 02:24:55

标签: c++ arrays string shell char

所以我有以下函数,该函数将输入的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 *数量。

1 个答案:

答案 0 :(得分:0)

  

我想知道是否有任何方法可以获取返回的char*所包含的char**的数量。

鉴于您显示的代码,只有一种方法-调用方将不得不迭代数组计数元素,直到其到达末尾的NULL

否则,请调整函数以将数组计数与数组指针一起返回,作为可选输出参数,或者使用std::pair<char**, int>struct { char**; int; }作为返回值。