sprintf到c中的char指针列表?分段错误

时间:2012-04-19 07:34:11

标签: c string segmentation-fault printf arrays

我有这个代码可以工作(它有点剥离):

char *parmList[6];

parmList[0] ="/root/ssl_send";
parmList[1] ="-m 1";            
...etc...
parmList[5] = NULL;
execvp(parmList[0], parmList);

现在我想用sprintf在这个列表中用一个字符串写一些东西(更确切地说,我希望* parmList [6]的一个指针指向一个用sprintf构造的char数组)。我一直在收到“分段错误”。 我试过了:

  • 使用malloc,
  • 声明一个双数组,以便保留内存空间,
  • 使用snprintf,....

我显然做错了什么。问题是Sprintf Segmentation Fault类似,只是我需要有一个execvp的指针/ char_arrays列表。

1 个答案:

答案 0 :(得分:1)

以下是使用sprintf创建字符串并在参数列表中使用该字符串的代码。确保为sprintf输出分配足够的空间。

char *parmList[6];
parmList[0] = "/bin/ls";
char arg1[10];
sprintf(arg1, "%s", "-l");
parmList[1] = arg1;
parmList[2] = NULL;
execvp(parmList[0], parmList);