2014-02-09 34 views
-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中?

+2

**不要**轉貼問題:[如何正確傳遞這個C字符串數組?](http://stackoverflow.com/questions/21655310/how-do-i-pass-this-array -of-C-串-正確)。你還沒有包括這個最重要的部分,在這裏和這裏都要求。 **發佈填充數組**的代碼。 (並在原始問題中進行)。 – WhozCraig

+0

是的,我重複它,以便人們可以更好地回答它。 – user3040019

+0

1. c [128]聲明129個元素而不是128. 2.發佈填充的代碼。 – 2014-02-09 06:32:19

回答

0

它應該工作得很好,除非您忘記builtin_cmd()main()中的return值。查看Ideone上的運行結果。

相關問題