DragonFly On-Line Manual Pages
MEMSHUFFLE(3) C Programmer's Manual MEMSHUFFLE(3)
NAME
memshuffle - make an array be in random order
SYNOPSIS
#include <publib.h>
void *memshuffle(void *block, size_t elsize, size_t elnum);
DESCRIPTION
memshuffle will move around the elements of an array in a random
fashion. It uses the standard library function rand(3) to get the
pseudo-random numbers it needs. The caller must set a suitable seed
with srand(3).
RETURN VALUE
memshuffle returns its first argument.
EXAMPLE
To shuffle an integer array one might do the following.
int array[4] = { 1, 2, 3, 4 };
memshuffle(array, sizeof(array[0]), 4);
BUGS
On many systems rand(3) is not of very good quality. However, it is
the only random number generator that can be assumed to exist. Making
it possible for the caller to provide an alternate source of random
numbers (e.g., via a function pointer) is perhaps too more trouble than
its worth. A better way would be for everyone to fix their rand's.
SEE ALSO
publib(3), memrev(3), rand(3), srand(3)
AUTHOR
Lars Wirzenius (lars.wirzenius@helsinki.fi)
Publib C Programmer's Manual MEMSHUFFLE(3)