//创建树 PBinTree createBinTree() { PBinTree pbt; pbt = (PBinTree)malloc(sizeof(BinTree)); if (pbt != NULL) { *pbt = createBinTreeNode(); return pbt; } else printf("failed!!\n"); } //createTreeNode函数 PBinTreeNode createBinTreeNode() { PBinTreeNode pbtn; char ch; printf("请输入结点值:\n"); scanf("%c", &ch); if (ch == "@") pbtn= NULL; else { pbtn = (PBinTreeNode)malloc(sizeof(struct BinTreeNode)); if (pbtn != NULL) { pbtn->info = ch; pbtn->llink = createBinTreeNode(); pbtn->rlink = createBinTreeNode(); } } return pbtn; }
这是代码的一部分编译时提示: error C2040: “createBinTreeNode”:“PBinTreeNode ()”与“int ()”的间接寻址级别不同。
看了半天找不到错误地方,求高手帮看看
解决方案
10
这些类型怎么定义的啊
20
双击错误提示,定位到具体位置。这里看不出有什么问题
1:检查能否有左右操作数类型不能匹配的情况
2:BinTreeNode在这个文件中能否是完全类型(能看到定义的)
1:检查能否有左右操作数类型不能匹配的情况
2:BinTreeNode在这个文件中能否是完全类型(能看到定义的)
10
*pbt类型和createBinTreeNode的返回值类型不一样吧;
感觉这个地方怪怪的。
本人认为你应该是pbt类型里的一个元素是PBinTreeNode类型的。
主要还是要看你的数据结构定义。
感觉这个地方怪怪的。
本人认为你应该是pbt类型里的一个元素是PBinTreeNode类型的。
主要还是要看你的数据结构定义。