c - 在c中打印二维字符数组

标签 c arrays

我想用 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/

相关文章:

c++ - 记录失败的模糊测试以便稍后重新执行

使用 qsort 比较字符串

java - 这是短路的例子吗?

c - 将 double 组转换为字符串数组

c++ - Windows 版本识别 [C/C++]

java - 调用 C 子例程时出现 JNI 错误

c - 如何将 libc_nano 与 Clang 一起使用?

ruby - 为什么 Ruby 数组允许访问无效的范围索引?

c++ - 在数组中搜索还是切换?对于通过替换的密码

c - 如何在函数声明语句中使用二维数组?