如何存储char * array [3]类型的数组?

时间:2014-10-12 21:58:04

标签: c arrays pointers

我正在编写一个基本shell,并将我的输入解析为char *数组[3],例如:

char *args[3] = {"ls", "-l", NULL};

我的目的是将这些数组存储在另一个数组中,然后将它们传递给execvp来管道它们。 我难倒的地方是以下代码:

char **commands[256];
commands[0] = args;

前面的代码行抛出了一个不兼容的指针类型,我不明白为什么,因为我认为这是存储char * []类型数组的正确语法。我确信解决方案很简单,但它暗指我。

编辑:

好的代码行

commands[0] = args;

仍然会抛出错误。此外,当我尝试使用以下代码从**命令中提取*命令时:

char *temp;
temp = commands[0]

我收到一个不兼容的指针错误。难道我不能这样做吗?

1 个答案:

答案 0 :(得分:1)

看起来你想要:

char *commands[256];

char **commands;

你声明的是指针的256个指针数组。

从您的示例中不清楚为什么要使用其他数组,因为您的args数组已经适合传递给execvp