ich hab mit Turbo C ein Programm geschrieben, in dem gibts nen far Pointer:
unsigned char far *test = (unsigned char far *)0x20000000;
also ein far pointer zu 2000:0000,
den benutz ich ganz normal als Array, zB:
test[0] = 255;
soweit funktioniert das auch
aber was wenn ich nun sowas mache:
test[65536] = 255;
da der Spaß bei 0 anfängt, ist 65536 ja genau im nächsten Segment,
bekommt Turbo C das automatisch hin und schreibt das dann einfach ins nächste Segment, oder macht der da dann murks?
mein Programm funktioniert jedenfalls nicht, muss aber nicht daran liegen
eigentlich hätte ich das einfach ausprobieren können
test[65536] = 255;
if(test[65536] == 255)
{
//irgendwas
}
aber vielleicht gibts auch einfach nen Überlauf oder so
und das Zeug ist dann einfach an 2000:0000, statt 3000:0000