Маленький вопросец об указателях.
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
Когда пишем такое объявление, надо понимать, что 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 *'. В чём косяк?
- Romeo
- Сообщения: 3091
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Код: Выделить всё
char far *vp = (char far *)0xB8000000;
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.