【发布时间】:2016-04-22 23:41:16
【问题描述】:
我正在为我的操作系统课程做作业。我们可以选择使用 C 或 C++,所以我决定使用 C++,因为我在工作中比 C 更早地练习它。
我需要打电话(来自“ $ man execvp "在 Linux 上)
int execvp(const char *file, char *const argv[]);
这(除非我弄错了)意味着我需要一个 C 风格的 char* 数组(C 中的字符串数组),并且不能使用 C++ 中的 std::string。
我的问题是:在 C++ 中制作/使用 char* 数组而不是字符串数组的正确方法是什么?大多数人倾向于说 malloc 在 C++ 中不再使用(我现在尝试了一些并发症)
char** cmdList = (char**)malloc(128 * sizeof(char*));
但我不知道如何在没有的情况下制作 char* 数组。 即使我使用的是 C++,我仍然可以在 C 中解决这个问题吗?我从未遇到过无法在 C++ 中使用字符串的情况。
感谢大家的时间。
【问题讨论】:
-
请注意,该函数要求数组中的最后一个指针为空指针