c++.windows.16-bits - hcalloc
- Mark Evans <mevans zyvex.com> Jun 21 2001
- Mark Evans <mevans zyvex.com> Jun 21 2001
You might consider adding this function to the runtimes.
In 16-bit runtimes, huge pointers may be allocated and freed. What is lacking
is an equivalent of calloc which clears the memory when it is allocated.
Here's my version.
void __huge *_hcalloc(long num, size_t size)
{
char __huge *data;
unsigned long int actual_bytes,i;
data = _halloc(num,size);
if (data != NULL)
{
actual_bytes = num * size;
for(i=0;i<actual_bytes;i++)
*data++ = 0;
}
return data;
}
Mark
Jun 21 2001
Sorry, make that:
// Digital Mars runtime lacks a calloc-style function for huge pointers
void __huge *_hcalloc(long num, size_t size)
{
void __huge *data;
char __huge *clearptr;
unsigned long int actual_bytes,i;
data = _halloc(num,size);
if (data != NULL)
{
clearptr = data;
actual_bytes = num * size;
for(i=0;i<actual_bytes;i++)
*clearptr++ = 0;
}
return data;
}
Jun 21 2001








Mark Evans <mevans zyvex.com>