types of errors in c