遇到双指针的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了遇到双指针的问题相关的知识,希望对你有一定的参考价值。

我想写一个程序,读取多个文件,并将所有的单词存储在一个字符串数组中。以下是代码的一些部分。

这是我要把单词放进的数组。

我还动态地给这个数组分配了内存并释放了它,所以问题不在于此。不知为什么,在while循环之后,当我试图打印出这个数组时,它是空的,就像什么也没写进去一样。

如果你需要其他部分的代码,请告诉我,我很乐意把它贴出来。

答案

假设 word_collection.all_words 对你使用的所有索引都有效,那么这个赋值

word_collection.all_words[wc_pos++] = word;

将使 的元素 word_collection.all_words 指向完全相同的位置。单元的第一个元素 word 数组。

这是一个问题,还有一个可能的问题。如果... word 不是全局变量,那么一旦定义了 word 回报,生命期的 word 将会结束,使得所有这些指针无效。

为了解决这两个问题,你需要为每个元素分配内存,并将字符串从 word. 这可以通过常用的 strdup 功能。

word_collection.all_words[wc_pos++] = strdup(word);

当然,你要记住 free 返回的所有指针 strdup.

以上是关于遇到双指针的问题的主要内容,如果未能解决你的问题,请参考以下文章

片段 getArguments() 空指针异常

LeetCode 942 增减字符串匹配[贪心 双指针] HERODING的LeetCode之路

片段中的TextView在Android Studio中返回Null

Mapview 给出 nullpointerexception 片段

为具有双指针的结构内的动态结构数组分配内存**

使用 Kotlin 在片段中引用 RecyclerView 时出现空指针错误