I
Hab mir deine Funktion nicht angeschaut, aber die Parameter sind ungeschickt.
error_proof = proof_scan(correct_number[0], correct_number[1], correct_number[2], correct_number[3], user[0], user[1], user[2], user[3], &right_place, &wrong_place, &wrong);
Du übergibst hier alle Elemente zweier Arrays. Übergib doch einfach nur die Adresse der Arrays, dann kannst du es so aufrufen:
error_proof = proof_scan(correct_number, user, &right_place, &wrong_place, &wrong);
Der Fehler kommt, weil du einen int übergibst, die Funktion jedoch einen int* erwartet (correct_number[0] als Übergabeparameter is vom Typ int)