Don wrote:
[1] What was size_t on the 286 ?
16 bits
Note that in the small memory model (all pointers 16 bits) it really was
possible to have an object of size 0xFFFF_FFFF, because the code was in
a different address space.
Not really. I think the 286 had a hard limit of 16 Mb.
There was a so-called "huge" memory model which attempted (badly) to fake a
linear address space across the segmented model. It never worked very well (such
as having wacky problems when an object straddled a segment boundary), and
applications built with it sucked in the performance dept. I never supported it
for that reason.
A lot of the effort in 16 bit programming went to breaking up data structures so
no individual part of it spanned more than 64K.