Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at _countof Macro.
Compute the number of elements in a statically-allocated array.
Syntax
size_t _countof(
array
);
Parameters
array
The name of an array.
Return Value
The number of elements in the array, expressed as a size_t
.
Remarks
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.
Requirements
Macro | Required header |
---|---|
_countof |
<stdlib.h> |
Example
// crt_countof.cpp
#define _UNICODE
#include <stdio.h>
#include <stdlib.h>
#include <tchar.h>
int main( void )
{
_TCHAR arr[20], *p;
printf( "sizeof(arr) = %zu bytes\n", sizeof(arr) );
printf( "_countof(arr) = %zu elements\n", _countof(arr) );
// In C++, the following line would generate a compile-time error:
// printf( "%zu\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