>>struct dirent **check_dirent
says check_dirent is a pointer to a pointer to a struct dirent, which makes this incorrect:
You have an extra level of indirection to think about. If you had declared it like so:
>>struct dirent *check_dirent
then this would have been OK:
... I'm not saying you should change it to that, more using it to help highlight your error.
As for this:
check_stat is a pointer, so you need to use the -> syntax rather than dot.