Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的字符串数组变为空-C_C_Arrays - Fatal编程技术网

为什么我的字符串数组变为空-C

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

我有一个函数,它读取一个文件的内容,该文件包含随机的字母和符号字符串,并查找文件中出现的单词。它将单词放入数组“单词”

问题是,在while循环之后,我遍历单词数组,但它只显示空白。我在gdb中调试了它,在while循环之后,所有条目都变为空

            words[wordsI] = str;
这将
words[wordsI]
设置为
str
,这意味着如果数据
str
指向更改,则数据
words[wordsI]
指向的将更改。稍后,将数据
str
点更改为。您可能想要:

            words[wordsI] = strdup(str);

这会将
words[wordsI]
设置为包含
str
当前指向的内容副本的新块或内存。现在,您可以将区域
str
指向任意多的位置,而无需更改
words[wordsI]
中的指针指向的位置。

谢谢,这解决了我的问题。
            words[wordsI] = strdup(str);