季节的问候!我有一个函数打印出一个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