这个错误怎么改呢?
明明是同一个类型的啊,怎么会这样呢?!
error C2664: “Control::FindIDHierarchyDes”: 不能将参数 1 从“HierarchyTableDes”转换为“HierarchyTableDes *”
- C/C++ code
class Control{......... Hierarchy *FindIDinHierarchy( HierarchyTableDes *FirstDes,WORD ID ); HierarchyTableDes *FindIDHierarchyDes( HierarchyTableDes *FirstDes,WORD ID ); void DelIDinHeirarchy( WORD ID );};HierarchyTableDes *Control::FindIDHierarchyDes( HierarchyTableDes *FirstDes,WORD ID ){ for(DWORD i = 0;i < FirstDes->Point;i++) { if( FirstDes->TableAddr[ i ].ID == ID ) { return FirstDes; } if( FirstDes->TableAddr[ i ].SubHierarchy != NULL ) { FindIDHierarchyDes( FirstDes->TableAddr[ i ].SubHierarchy,ID ); } } if( FirstDes->NextTableStruct != NULL ) //if have next table { FindIDHierarchyDes( FirstDes->NextTableStruct,ID ); }}void Control::DelIDinHeirarchy( WORD ID ){ [color=#FF0000]HierarchyTableDes *DesLocate = FindIDHierarchyDes( FirstTable,ID );[/color]........[解决办法]
HierarchyTableDes *DesLocate = FindIDHierarchyDes( FirstTable,ID );
-》
HierarchyTableDes *DesLocate = FindIDHierarchyDes( &FirstTable,ID );试试
[解决办法]
楼上正解
[解决办法]
这种就是参数类型不对,传地址指针就可以
[解决办法]
HierarchyTableDes *FindIDHierarchyDes( HierarchyTableDes *FirstDes,WORD ID );
-----
第一个参数是指针~