我正在尝试使用链接列表构建二进制搜索树。所以我的链表的结构是:
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++;
}
任何反馈都将不胜感激。
答案 0 :(得分:1)
我猜node
的类型为BST *
。在这种情况下,您应该使用->
访问它。
类似的东西:
int counter = 0;
while(array[counter] != ' ')
{
node->english[counter] = array[counter];
counter++;
}
此解决方案的问题在于它不受保护。如果数组比英语成员长,则可能会出现缓冲区溢出。此外,您使用英语获得的字符串可能不会以空值终止。
尝试使用strlcat库函数:
strlcat(node->english, array, sizeof(node->english);