-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