You are currently offline, waiting for your internet to reconnect

INFO: Common Programming Errors in the C Language

This article was previously published under Q22321
SUMMARY
The text below lists some of the most common errors that occurprogramming in the C language. Any one of these items can causeunpredictable results, such as invalid data. Some are caught bythe compiler and reported as errors or warnings.
  • Using an automatic variable that has not been initialized
  • Omitting a closing comment delimiter
  • Using an array index greater than the length of the array (In C, array indexes run from zero to <length>-1.)
  • Omitting a semicolon or a closing brace
  • Using an uninitialized pointer
  • Using a forward slash when a backslash is required (for example, substituting "/n" for "\n.")
  • Using "=" in a comparison where "==" is desired
  • Overwriting the null terminator for a string
  • Prematurely terminating a function declaration with a semicolon (The compiler often flags the "orphan" block of code as a syntax error.)
  • Specifying the values of variables in a scanf() statement instead of their addresses
  • Failing to declare the return type for a function
  • Assuming an expression evaluation order when using an expression with side effects (For example, a[i] = i++; is ambiguous and dangerous.)
  • Failing to account that a static variable in a function is initialized only once
  • Omitting a "break" from a case in a switch statement (Execution "falls through" to subsequent cases.)
  • Using "break" to exit a block of code associated with an if statement (The break statement exits a block of code associated with a for, switch, or while statement.)
  • Comparing a "char" variable against EOF (-1). The following idiom results in an infinite loop when char is unsigned. Note that char is signed by default, so the following will only fail when using the "/J" compiler option:
    char c;while ((c = getchar()) != EOF)   {   }						
Properties

Article ID: 22321 - Last Review: 07/05/2005 19:27:00 - Revision: 2.1

  • Microsoft C Professional Development System 6.0a
  • Microsoft Visual C++ 1.0 Professional Edition
  • Microsoft Visual C++ 1.5 Professional Edition
  • Microsoft Visual C++ 2.0 Professional Edition
  • Microsoft Visual C++ 4.0 Standard Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
  • kbinfo kblangc KB22321
Feedback