0
我有这样的代码工作(这是一个有点剥离下来):sprintf到c中的char指针列表?分割错误
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,...
我明明做错事。问题是similliar到Sprintf Segmentation Fault,只是我需要有一个execvp的指针/ char_arrays列表。
为什么不**告诉我们你试过的而不是告诉的是什么? – littleadv 2012-04-19 07:36:01
您很可能试图通过指针修改字符串文字,导致未定义的行为和崩溃。 – 2012-04-19 07:37:03
字符串文字通常是只读的,它是UB来尝试写入它们。如果你想修改这些,那么你需要为它们分配内存并复制字符串文字数据。 – 2012-04-19 07:37:31