Warning: main(/www/www/htdocs/style/globals.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/c/calloc.html on line 1
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/globals.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/c/calloc.html on line 1
Warning: main(/www/www/htdocs/style/header.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/c/calloc.html on line 8
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/header.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/c/calloc.html on line 8
Allocate space for an array
#include <stdlib.h>
void* calloc ( size_t n,
size_t size );
- n
- The number of array elements to allocate.
- size
- The size, in bytes, of one array element.
libc
Use the -l c option to
qcc
to link against this library.
This library is usually included automatically.
The calloc() function allocates space from the heap for an array
of n objects, each of size bytes, and initializes
them to 0.
Use
free()
or
realloc()
to free the block of memory.
If n or size is zero, the default behavior is to
return a non-NULL pointer that's valid only to a
corresponding call to free() or realloc().
Don't assume that this pointer points to any valid memory.
You can control this behavior via the MALLOC_OPTIONS
environmental variable;
if the value of MALLOC_OPTIONS contains a V,
calloc() returns a NULL pointer.
This environment variable also affects
malloc()
and realloc().
This is known as the “System V” behavior.
A pointer to the start of the allocated memory, or NULL if
an error occurred
(errno
is set).
- ENOMEM
- Not enough memory.
- EOK
- No error.
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
char* buffer;
buffer = (char* )calloc( 80, sizeof(char) );
if( buffer == NULL ) {
printf( "Can't allocate memory for buffer!\n" );
return EXIT_FAILURE;
}
free( buffer );
return EXIT_SUCCESS;
}
- MALLOC_OPTIONS
- Control the way calloc(), malloc(), and
realloc() behave if you specify a size of 0 (or a value of
0 for the n argument to calloc()).
The V (“System V”) and R
(“use the realloc() behavior of QNX Neutrino 6.4.0
and earlier”) columns below indicate how the
functions behave if the value of MALLOC_OPTIONS
includes that letter:
Function
|
Default
|
V
|
R
|
calloc(n, 0)
|
Non-NULL
|
NULL
|
No effect
|
malloc(0)
|
Non-NULL
|
NULL
|
No effect
|
realloc(NULL, 0)
|
Non-NULL
|
NULL
|
No effect
|
realloc(non-NULL, 0)
|
Non-NULL
|
NULL
|
NULL
|
In all the above cases, if the function returns a non-NULL
pointer, it's valid only for a corresponding call to free()
or realloc().
ANSI,
POSIX 1003.1
Safety: | |
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
No |
Thread |
Yes |
free(),
malloc(),
realloc(),
sbrk()
Warning: main(/www/www/htdocs/style/footer.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/c/calloc.html on line 269
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/footer.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/c/calloc.html on line 269