【发布时间】:2018-08-10 11:02:52
【问题描述】:
关于如何在C中连接char数组有很多问题,但我想知道的与此不同。我想知道如何在 C 中连接“双指针”字符数组。
例如,
const char *array1[] = {"aa", "bb"};
const char *array2[] = {"cc", "dd", "ee"};
我想像这样获取新的 char 双指针数组:
char **new_array = {"aa", "bb", "cc", "dd", "ee"};
// this code actually doesn't work, though
我想知道实现这一点的最简单最快的方法。
编辑:事实上,我正计划在下面创建一个程序。
int main(int argc, char **argv) {
pid_t pid;
char **args = {"sh", "-c"} + argv; // this code doesn't work
posix_spawn(&pid, "/bin/sh", NULL, NULL, (char* const*)args, NULL);
}
这个程序只是在“sh -c”之后传递参数。
【问题讨论】:
-
我认为我们需要一些上下文。这些是运行时字符串吗?如果没有,你有最快的方法。就写吧。
-
没有像
strcat这样的标准函数来组合泛型数组。您需要手动完成。 -
我已经添加了详细的上下文。我想在原始参数(argv**)之前添加“sh”、“-c”参数。
-
只需创建一个指针数组。让前两个指针指向字符串文字,其余指针指向 argv 中的每个项目。
标签: c arrays char double-pointer