問題のある行:
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);
エラーは消えましたが、正しいことをしたというあなたからの確認を待っています(: