Aside from the fact that the type of the thing you allocate has no bearing on whether you need to free it, there's no need for the malloc/free at all:
if (node != NULL){
int n = node->numberOfPossibleMoves;
int max = 0;
for (int i = 0; i < n; i++){
int height = EQTN_getHeight(node->children[i], depth + 1);
if (max < height)
max = height;
}
return max;
}