Добавлено: 18 окт 2004, 19:34
Borland C++ 3.1 и ХР
Когда пишем такое объявление, надо понимать, что scrbuffer[0] означает весь массив unsigned char scrbuffer [64000], а не первый элемент типа unsigned char. Т.е. с точки зрения последующего посимвольного доступа такое объявление смысла не имеет. Лучше делать так:Код: Выделить всё
typedef unsigned char scrbuffer [64000]; scrbuffer *screen = (scrbuffer *)0xA000;
Код: Выделить всё
typedef unsigned char * TScreenBuf;
TScreenBuf sb = (TScreenBuf) 0xa000;
Попробуй char far *И ещё: прочитал в книжке Павловской, как присвоить указателю адрес памяти в явном виде. char *vp = (char *)0xB8000000 Набираю пример. Дословно. Выдаётся ошибка: cannot cast from 'unsigned long' to 'char *'. В чём косяк?
Код: Выделить всё
char far *vp = (char far *)0xB8000000;