季节的问候!我有一个函数可以打印出一个 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);
}
}
我将我的 char** 传递给这样的函数:
printHistory (&commandArray);
就目前而言,一切都编译得很好,但是当程序打印历史记录时,函数会挂在循环中的某个位置,并且不会打印出 char** 中的内容。所以,我的问题是:我是否正确地传递了 commandArray,我是否正确地声明了函数,我是否在函数中以正确的方式取消引用它?
提前感谢您的任何和所有帮助或建议!
-本