季節的問候!我有一個函數打印出一個char **的內容,它被用作一個數組來存儲一些字符串。聲明如下:通過引用將char **傳入函數
char** commandArray = (char**)malloc(historySize);
其中historySize是一個全局int設置爲8,現在。該數組填充了用戶輸入的命令,以循環隊列的形式排列。有很多地方我可能想要打印緩衝區的內容,所以我做了一個函數。理想情況下,該函數接受對commandArray的引用並循環遍歷它,打印出它包含的內容。現在,我不得不說,指針和引用不是我的強項,所以我不確定我是否正確地做事。功能如下:
/* prints the contents of the history buffer */
void printHistory(char*** historyBuff)
{
/* a counter for the loop */
int loopIdx = 0;
for (loopIdx = 0; loopIdx < historySize; loopIdx++)
{
/* print the current history item */
printf ("\nhistoryBuff[%i] = %s\n", loopIdx, *historyBuff[loopIdx]);
fflush(stdout);
}
}
我通過我的字符**入函數是這樣的:
printHistory (&commandArray);
目前的情況是,一切編譯罰款,但是當程序打印歷史,函數在循環的某個地方掛起,不會打印出char **中的內容。所以,我對你的問題是這樣的:我是否正確地傳遞了commandArray,我是否正確地聲明瞭函數,並且是否在函數中正確地引用它?
在此先感謝您的任何幫助或建議!
-Ben
謝謝你們的幫助!該功能現在工作出色。再次,我非常感激。 – BReeves 2009-12-31 02:03:45