我想用 C 创建并打印二维字符数组,我最终将其用作函数“execvp()”的输入,以执行和开发 shell。当我执行代码时,我将其作为输出而不是整个数组。 问题是什么?
在这一部分中,如果我的代码仅呈现我尝试初始化数组的部分:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j;
char **cmd[4][3] = {
{"ls", "-l",NULL},
{"grep", "test.c", NULL},
{"wc", NULL},
{"sort", "-r", NULL}
};
for(i=1;i<5;i++)
{
for(j=0;j<3;j++)
{
printf("%s\n",cmd[i][j]);
}
}
return (0);
}
输出:
grep
test.c
Segmentation fault (core dumped)
最佳答案
嗯。为什么你有for(i=1;i<5;i++)
如果您只有 4 行?
应该是吗
printf("%s\n",cmd[i-1][j]);
或
for(i=0;i<4;i++)
?
关于c - 在c中打印二维字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33975818/