我想从1D字符数组中构建一个2D数组,其中每次遇到换行符时,该字(包括换行符)被复制到二维数组元素中。这里是代码,这正是我需要的,但我对此有几点疑问。有人可以向他解释这段代码的工作原理吗?
让我提醒你,这只是我的程序 中代码的一部分,所以numChars只是chars数组中的字符数。 numWords只是我拥有的单词数量。 和单词被声明为char **单词。
int k=0;
int i=0;
char** words = (char**) malloc(sizeof(char*) * numWords);
words[k] = chars;
while(i < numChars)
{
if(chars[i] == '\n')
{
k++;
words[k] = (chars+i+1);
}
i++;
}
问题1:第一个words[k] = chars
做什么? 问题2:有人可以向我解释这条线是如何工作的words[k] = (chars+i+1);
非常感谢你,并且对于菜鸟问题感到抱歉。
请发表[MCVE](http://stackoverflow.com/help/mcve)。几乎不可能提出任何有用的代码段。 – 2015-02-17 21:40:00
我们不知道第一个答案,因为我们看不到字符是什么 – pm100 2015-02-17 21:40:11
当您逐步完成代码时,调试器显示了什么? – 2015-02-17 21:40:22