繁体   English   中英

双指针有问题

[英]Having issues with double pointers

我正在尝试编写一个程序来读取多个文件并将所有单词存储在一个字符串数组中。 以下是部分代码:

这是我应该将单词放入的数组:

我还动态地将 memory 分配给这个数组并释放它,所以问题不在于。 出于某种原因,在 while 循环之后,当我尝试打印出数组时,它是空的,就像没有写入任何内容一样。

如果您需要代码的任何其他部分,请告诉我,我很乐意发布。

假设word_collection.all_words对您正在使用的所有索引都有效,那么赋值

word_collection.all_words[wc_pos++] = word;

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

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

要解决这两个问题,您还需要为每个元素分配 memory ,并从word复制字符串。 这可以通过常用的strdup function 来完成:

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

当然,您必须记住free strdup返回的所有指针。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM