Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
and
div
eof
not
or
xor
Expand Minimize

_countof Macro

Compute the number of elements in a statically-allocated array.

size_t _countof( 
   array
);

array

The name of an array.

The number of elements in the array, expressed as a size_t.

Ensure that array is actually an array, not a pointer. In C, _countof will produce erroneous results if array is a pointer. In C++, _countof will fail to compile if array is a pointer.

Macro

Required header

_countof

<stdlib.h>

// crt_countof.cpp
#define _UNICODE
#include <stdio.h>
#include <stdlib.h>
#include <tchar.h>

int main( void )
{
   _TCHAR arr[20], *p;
   printf( "sizeof(arr) = %Iu bytes\n", sizeof(arr) );
   printf( "_countof(arr) = %Iu elements\n", _countof(arr) );
   // In C++, the following line would generate a compile-time error:
   // printf( "%Iu\n", _countof(p) ); // error C2784 (because p is a pointer)

   _tcscpy_s( arr, _countof(arr), _T("a string") );
   // unlike sizeof, _countof works here for both narrow- and wide-character strings
}
sizeof(arr) = 40 bytes
_countof(arr) = 20 elements
Show:
© 2015 Microsoft