有问题的行:
void deleteController(Controller* ctrl) {
...
destroy(ctrl->repo);
...
}
从不兼容的指针类型传递 'destroy' 的参数 1 [默认启用]
问题函数的标题:
void destroy(Vector* v);
控制器结构:
typedef struct {
TransRepository* repo;
} Controller;
TransRepository 结构:
typedef struct {
Vector* TList;
char* fileName;
} TransRepository;
向量结构
typedef struct {
TElem* elems; // vector elements
int len; // #of elements from the vector
int capacity; // maximum capacity of the vector
CmpFun cmp; // comparison function for two generic elements
CpyFun cpy; // cloning function for a generic element
DelFun del; // deallocation function for a generic element
} Vector;
附加定义:
typedef void* TElem;
typedef int (*CmpFun)(TElem, TElem);
typedef TElem (*CpyFun)(TElem);
typedef void (*DelFun)(TElem);
我想过改变参数的类型, destroy()
但效果不好。所以我在参数部分添加了另一个字段,认为该函数没有找到它需要的东西。
destroy(ctrl->repo->TList);
错误消失了,但我正在等待您确认我做了正确的事情(: