左值?

sun_shine_ 2011-06-07 10:17:25

void getimage256(x1,y1,x2,y2,image)
short x1,y1,x2,y2;
char-huge *image;
{
char-far*buf,-huge *q;
long u;
short m,n,i,j,block;
m=abs(x2-x1)+1;
n=abs(y2-y1)+1;
(short)*image=m; //编译到这里 TC报错 说“Lvalue required in function getimage256” 下面那句也是这个错误
(short)*(image+2)=n;


求解释
...全文
111 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
AnYidan 2011-06-08
  • 打赏
  • 举报
回复
lz v5

居然用此风格的 函数定义

支持6 楼
乖乖的上帝 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 simoreg 的回复:]

(short)*image=m;
要么 *image=m; 要么 *(short*)image=m;

(short)*(image+2)=n;
要么 *(image+2)=n; 要么 *(short*)(image+2)=n;
[/Quote]
谢谢 是要把它转化为短指针后,再取值,对吧,下面是有接下去的程序 同样的错误
void getimage256(x1,y1,x2,y2,image)
short x1,y1,x2,y2;
char huge *image;
{
char far *buf,huge *q;
long u;
short m,n,i,j,block;
m=abs(x2-x1)+1;
n=abs(y2-y1)+1;
*image = m;
*(image+2) = n;
q=image+4;
u=min(x1,x2);
u+=min(y1,y2) * 640l;
block=(short)(u/65536l);
u-=block*65536l;
fp_seg(buf)=0xa000; //运行到这里的时候又出现同样的错误
fp_off(buf)=u;
KID_coder 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sun_shine_ 的回复:]
引用 1 楼 kid_coder 的回复:

(short)*image=m; //编译到这里 TC报错 说“Lvalue required in function getimage256” 下面那句也是这个错误
(short)*(image+2)=n;



。。。应该强制转换m和n

怎么转化 谢谢
[/Quote]
可能我的理解错了~ 不清楚LZ这段代码是干嘛的
LZ如果想在改变imgae指向地址的值像5楼那样做
就想叫yoko 2011-06-07
  • 打赏
  • 举报
回复
强制转换将生成一个临时变量
不能作为左值
simoreg 2011-06-07
  • 打赏
  • 举报
回复
(short)*image=m;
要么 *image=m; 要么 *(short*)image=m;

(short)*(image+2)=n;
要么 *(image+2)=n; 要么 *(short*)(image+2)=n;



乖乖的上帝 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wh_liu 的回复:]

image 是指针,还没有给他初始化,分配地址,image就是野指针,进行*image这种操作自然报错
[/Quote]
这是在函数里,image是形参,又没事。
乖乖的上帝 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kid_coder 的回复:]

(short)*image=m; //编译到这里 TC报错 说“Lvalue required in function getimage256” 下面那句也是这个错误
(short)*(image+2)=n;



。。。应该强制转换m和n
[/Quote]
怎么转化 谢谢
wh_liu 2011-06-07
  • 打赏
  • 举报
回复
image 是指针,还没有给他初始化,分配地址,image就是野指针,进行*image这种操作自然报错
KID_coder 2011-06-07
  • 打赏
  • 举报
回复
(short)*image=m; //编译到这里 TC报错 说“Lvalue required in function getimage256” 下面那句也是这个错误
(short)*(image+2)=n;



。。。应该强制转换m和n

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧