微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

值类型“String*”不能分配给实体类型“Course”

如何解决值类型“String*”不能分配给实体类型“Course”

我一直被这个错误困扰,找不到任何解决我的问题的方法我有一个 insert_bts_node 函数(下面的代码)。

enter code hereBSTNodePtr insert_bst_node(BSTNodePtr self,String *item) {

/* check if found location,then insert */
if (self == NULL) {
    self = malloc(sizeof * self);
    self->course = item;
    //item = strcpy(self->course,item);
    self->left = self->right = NULL;
    create_list(self->course);
    //self->course = create_list();

}

/**
* else if (item < self->course) {
    self->left = insert_bst_node(self->left,item);

}
*/
else if (strcmp(item,self->course)<0){
    self->left = insert_bst_node(self->left,item);

}
else if (strcmp(item,self->course) >0){
    self->right = insert_bst_node(self->right,item);
}

return self;

}

错误self->course = item 上弹出。 我使用的定义如下。

typedef char* String;

typedef struct Course {
    String name;
    StudentList students;
} Course;

typedef struct bstNode {
    Course course;
    struct bstNode* left;
    struct bstNode* right;
} *BSTNodePtr;

解决方法

itemString* 类型,self->coursestruct Course 类型,正如错误消息所说。 如果您想将项目分配给课程名称(String 类型),您应该执行 self->course.name = *item

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。