目前,我能看到的唯一方法是循环遍历argv参数列表,获取最大的输入字符串,并创建一个具有此最大大小的新动态数组来指定每个元素的内存分配。
还是有更直接的方法?

最佳答案

查看以下内容是否有帮助:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char* argv[]) {
  char** myStrings;
  int ii;
  myStrings = malloc(argc * sizeof *myStrings);
  for(ii = 0; ii < argc; ii++) {
    myStrings[ii] = malloc(strlen(argv[ii])+1);
    strcpy(myStrings[ii], argv[ii]);
  }
  for (ii = 0; ii < argc; ii++) {
    printf("copied argument %d: it is '%s'\n", ii, myStrings[ii]);
  }
}

关于c - 在C语言中,如何动态添加命令行参数到字符串数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22593438/

10-13 05:08