somRenewNoInitNoZero - Example Code
#include <animal.h>
main()
{
void *myAnimalCluster;
Animal animals[5];
SOMClass animalClass;
int animalSize, i;
animalClass =
AnimalNewClass(Animal_MajorVersion,Animal_MinorVersion);
animalSize = _somGetInstanceSize (animalClass);
/* Round up to double-word multiple */
animalSize = ((animalSize+3)/4)*4;
/*
* Next line allocates room for 5 objects
* in a "cluster" with a single memory-
* allocation operation.
*/
myAnimalCluster = SOMMalloc (5*animalSize);
/*
* The for-loop that follows creates 5 initialized
* Animal instances within the memory cluster.
*/
for (i=0; i
animals[i] =
_somRenew(animalClass, myAnimalCluster+(i*animalSize));
/* Uninitialize the animals explicitly: */
for (i=0; i
_somUninit(animals[i]);
/*
* Finally, the next line frees all 5 animals
* with one operation.
*/
SOMFree (myAnimalCluster);
}
[Back: somRenewNoInitNoZero - Related Methods]
[Next: somRenewNoInitNoZero - Topics]