问题描述
- struct {}a,*p 的问题
-
typedef struct BTNode { //B-树的结构 int keynum; //n struct BTnode *parent; //指向双亲 KeyType key[m + 1]; //K(i) struct BTNode *ptr[m + 1]; //A(i) //Record *recptr[m + 1]; //记录指针向量 }BTNode, *BTree;
BTree是指向结构的指针,BTNode * 也是,那我为什么不能把BTree型的值赋给BTNode * 型的呢?
解决方案
struct BTnode *parent;改为struct BTNode *parent; 注意大小写。
解决方案二:
一个是BTNode, 一个是* BTree,类型本就不同。还有定义结构体应该这样:
typedef struct { //B-树的结构
int keynum; //n
struct BTnode *parent; //指向双亲
KeyType key[m + 1]; //K(i)
struct BTNode *ptr[m + 1]; //A(i)
//Record *recptr[m + 1]; //记录指针向量
}BTNode, *BTree;
解决方案三:
typedef struct BTNode { //B-树的结构
int keynum; //n
struct BTnode *parent; //指向双亲
KeyType key[m + 1]; //K(i)
struct BTNode *ptr[m + 1]; //A(i)
//Record *recptr[m + 1]; //记录指针向量
}BTNode, *BTree;
解决方案四:
typedef struct BTNode { //B-树的结构
int keynum; //n
struct BTnode *parent; //指向双亲
KeyType key[m + 1]; //K(i)
struct BTNode *ptr[m + 1]; //A(i)
//Record *recptr[m + 1]; //记录指针向量
}BTNode, *BTree;
解决方案五:
这样了:
```typedef struct { //B-树的结构
int keynum; //n
struct BTnode *parent; //指向双亲
KeyType key[m + 1]; //K(i)
struct BTNode *ptr[m + 1]; //A(i)
//Record *recptr[m + 1]; //记录指针向量
}BTNode, *BTree;
解决方案六:
这编辑器太糟糕了!
typedef struct { //B-树的结构
int keynum; //n
struct BTnode *parent; //指向双亲
KeyType key[m + 1]; //K(i)
struct BTNode *ptr[m + 1]; //A(i)
//Record *recptr[m + 1]; //记录指针向量
}BTNode, *BTree;
解决方案七:
问题原因:我也把楼主代码拷贝了。代码的确打错了!
shtruct dfdf * p; 这应该也算一个新结构体吧。 反正可以编译通过!
BTree是指向结构的指针,BTNode * 也是,那我为什么不能把BTree型的值赋给BTNode * 型的呢?
这是可以转的。。