【问题标题】:reading a char array inside a linked list node?读取链表节点内的字符数组?
【发布时间】:2016-12-01 15:19:07
【问题描述】:

我正在尝试使用链表构建二叉搜索树。所以我的链表结构是:

typedef struct node{
    char english[20];
    char span[60];
    struct node *left;
    struct node *right;
} BST;

如何访问节点内的 char 数组来修改它?假设我有一个 char english[] 并且我想将它复制到节点内的数组中,我该怎么做?我使用了这些线,但不确定它们是否正确?

int counter = 0;
    while(array[counter] != ' ')
    {
        node.english[counter] = array[counter];
        counter++;
    }

任何反馈都将不胜感激。

【问题讨论】:

  • 什么是node?您是否尝试过构建它?编译器告诉你什么? the rubber duck 告诉你什么?

标签: c arrays linked-list char binary-search-tree


【解决方案1】:

我猜node 的类型是BST *。在这种情况下,您应该使用-> 访问它。

类似:

int counter = 0;
while(array[counter] != ' ')
{
    node->english[counter] = array[counter];
    counter++;
}

这个解决方案的问题是它没有受到保护。如果数组长于英文成员,您可能会遇到缓冲区溢出。此外,您得到的英文字符串可能不会以 null 结尾。

尝试使用strlcat 库函数:

strlcat(node->english, array, sizeof(node->english);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 2021-08-08
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多