为什么我的字符串数组变为空-C
我有一个函数,它读取一个文件的内容,该文件包含随机的字母和符号字符串,并查找文件中出现的单词。它将单词放入数组“单词” 问题是,在while循环之后,我遍历单词数组,但它只显示空白。我在gdb中调试了它,在while循环之后,所有条目都变为空为什么我的字符串数组变为空-C,c,arrays,C,Arrays,我有一个函数,它读取一个文件的内容,该文件包含随机的字母和符号字符串,并查找文件中出现的单词。它将单词放入数组“单词” 问题是,在while循环之后,我遍历单词数组,但它只显示空白。我在gdb中调试了它,在while循环之后,所有条目都变为空 words[wordsI] = str; 这将words[wordsI]设置为str,这意味着如果数据str指向更改,则数据words[wordsI]指向的将更改。稍后,将数据str点更改为。您可能想要:
words[wordsI] = str;
这将words[wordsI]
设置为str
,这意味着如果数据str
指向更改,则数据words[wordsI]
指向的将更改。稍后,将数据str
点更改为。您可能想要:
words[wordsI] = strdup(str);
这会将
words[wordsI]
设置为包含str
当前指向的内容副本的新块或内存。现在,您可以将区域str
指向任意多的位置,而无需更改words[wordsI]
中的指针指向的位置。谢谢,这解决了我的问题。
words[wordsI] = strdup(str);