-2
我已经问过这个问题,做了一个非常糟糕的工作发布它导致混淆的答案,没有帮我解决我的问题。这次我正在努力使我的问题更容易解决。这是下面的问题......如何正确传递这个C字符串数组
int builtin_cmd(char **argv);
int main()
{
char *argv[128]; //create an array of c_strings with 128 slots in the array
//put 'quit' into argv[0].. (This was done by another file given to me by the professor)
printf("%s\n", argv[0]); //prints 'quit', as it should
builtin_cmd(argv); //call builtin_cmd and pass argv to the function
}
int builtin_cmd(char **argv)
{
printf("%s\n", argv[0]); //prints nothing, should have printed 'quit'
}
基本上,我有在功能builtin_cmd
正在访问char *argv[128]
问题。我将数组中的第一个索引设置为c_string'quit',然后在那里打印出来,就像我期望的一样,printf()在终端打印出'quit'。但是,一旦我打电话给builtin_cmd(argv);
,行printf("%s\n", argv[0]);
绝对不会打印出任何结果,就好像argv是空的一样。我该如何正确地将argv传递到函数builtin_cmd中?
**不要**转贴问题:[如何正确传递这个C字符串数组?](http://stackoverflow.com/questions/21655310/how-do-i-pass-this-array -of-C-串-正确)。你还没有包括这个最重要的部分,在这里和这里都要求。 **发布填充数组**的代码。 (并在原始问题中进行)。 – WhozCraig
是的,我重复它,以便人们可以更好地回答它。 – user3040019
1. c [128]声明129个元素而不是128. 2.发布填充的代码。 – 2014-02-09 06:32:19