Используйте ->
для указателей;используйте .
для объектов.
В вашем конкретном случае вы хотите
if (sample->left->num > sample->right->num)
, потому что все sample
, sample->left
и sample->right
являются указателями.
Если вы конвертируете любой из этих указателей в указатель на объект;используйте .
вместо
struct a copyright;
copyright = *(sample->right);
// if (sample->left->num > copyright.num)
if (*(sample->left).num > copyright.num)