In Turbo C and C++, the size of a single object can exceed 64K, according to the reference book "The Waite Group's Turbo C++ Bible", by Barkakati.
You can do that by using a memory model that supports it, if (and only if), you have enough physical (or virtual memory given to the program, from an OS like Windows).
The book mentioned has examples of all the Turbo C/C++ key words, in versions 1.0, 1.5, and 2.0.
From what I've just read, it basically makes 2 or more memory blocks, appear like one large memory block, to the programmer.
I heartily recommend grabbing a copy of this book, if you can find it. It's a treasure trove of everything in early Turbo C/C++, with examples for darn near every single thing.
This is the Turbo C/C++ Bible's example for allocating 80,000 bytes:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <alloc.h>
int main()
{
int far *bigblock;
if ((bigblock = farmalloc(80000L)) == NULL)
{
printf("Memory allocation failed!\n");
printf("\n\n Press Enter ");
getchar();
exit(1);
}
printf("Block of 80,000 bytes allocated at %Fp\n", bigblock);
printf("\n\n Press Enter");
getchar();
return 0;
}
This program will not run in the Tiny memory model. If successful, it returns a far pointer to the allocated block of memory. If not, it returns NULL.
I played with this for awhile with WindowsXP using the IDE. I couldn't get it to work, but I'm not experienced with messing with all the compiler options, command line interface for it, and etc.