2
我想初始化一个静态数组,它以null结尾并包含静态的以NULL结尾的数组。我还希望能够在以后打印所有内容。初始化静态多维空终止数组
下面是我得到了到目前为止的代码,明显的初始化和数据类型是不正确:
void print_commands(char *commands[][])
{
int i, j;
char *command[];
for(i = 0; commands[][i] != NULL; i++)
{
command = commands[][i];
printf("Command #%d: %s\n", i, command[0]);
for(j = 1; command[j] != NULL; j++)
{
printf("Argument #%d: %s\n", j, command[j]);
}
}
}
int main(int argc, char *argv[])
{
char *commands[][5] = {
{"less", 0},
{"sort", 0},
{"cat", "my.txt", 0},
{"echo", "hello", 0},
NULL};
print_commands(commands);
exit(0);
}
我将如何去正确初始化并使用此类型的数据?
谢谢!
我与第二版本去,因为它是更具有可读性和比指针到指针的阵列,以复合文字不易混淆。另外,'int i ... for(i = 0')表示OP可能使用C90,然后复合文字将不起作用 – Lundin
没错,第一个版本假设c99编译器(例如不能编译VC10) – BLUEPIXY