types of errors in c programming