鱼C论坛

 找回密码
 立即注册
查看: 4316|回复: 10

求帮助,利用指针显示字符串,可是为什么失败?

[复制链接]
发表于 2012-9-14 23:39:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 何辉海 于 2012-9-15 11:00 编辑

int main ()
{
        char *str = "Hello World.\n";
        unsigned short color = 7; /*白色字体*/
        unsigned short int *location = (unsigned short int *)( 0x0b8000 + 160 * 5 + 2 * 34 );
        while  ( str != '\0'   )
        {
                  *location++ = *str++ << 8 | color;
        }
        getch();
        
        return 0;
}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-14 23:53:57 | 显示全部楼层
       mark
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-15 00:33:05 | 显示全部楼层
这是混合编程吗
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-15 03:14:20 | 显示全部楼层
str为何要++两次?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-15 09:42:51 | 显示全部楼层
楼主的错误提示是不是不能写入?
char *str = "Hello World.\n";
unsigned short int *location = (unsigned short int *)( 0x0b8000 + 160 * 5 + 2 * 34 );
这种方法定义的字符串,str只是地址指针,而字符串"Hello World.\n"其实被写入了系统内存的常量区,在Windows系统里常量区的数据不能被写入。
把指针改为数组就可以了。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-9-15 10:58:32 | 显示全部楼层

你好,没有向常量区写入数据,我在dos环境下运行,不在windows下运行。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-9-15 10:59:10 | 显示全部楼层
三天一打进北大 发表于 2012-9-15 03:14
str为何要++两次?

额。。逻辑错误。。。。呵呵,,
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-9-15 11:00:29 | 显示全部楼层
自顶!!!!!!!!!!!!!!!!!!
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-9-15 11:01:08 | 显示全部楼层
在河之洲 发表于 2012-9-15 00:33
这是混合编程吗

不是,我是利用指针向显存写入数据
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-15 11:39:30 | 显示全部楼层

回帖奖励 +5 鱼币

问题可能出在这一句上了:
unsigned short int *location = (unsigned short int *)( 0x0b8000 + 160 * 5 + 2 * 34 );

在vc2010里面debug,到这一句时提示:错误的指针,无法计算表达式的值。

而0x0b8000 + 160 * 5 + 2 * 34 = 0x000b8364,是一个常量。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-9-15 12:11:15 | 显示全部楼层
贝壳 发表于 2012-9-15 11:39
问题可能出在这一句上了:
unsigned short int *location = (unsigned short int *)( 0x0b8000 + 160 * 5  ...

在dos下编程,windos下系统会报错。。
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-15 03:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表