单片机/MCU论坛
直播中

爱吃果冻

13年用户 884经验值
私信 关注
[讨论]

KEIL中结构体问题

#include



typedef struct

{

int len;

char  DATA[300];

} SM_BUFF;



void main()

{

   xdata SM_BUFF * ab;

  ab->len=80;

  &(ab->DATA)="AGAGJ;DF";

}



编译出错MIAN.C(15): error C213: left side of asn-op not an lvalue

不知结构体该怎样使用 求指导


回帖(5)

成喜

2012-11-22 15:26:36
楼主找个例子看看吧,uCOSII里有很多结构体的,可以参考。
举报

douyin8

2012-11-22 15:26:51
字符串可以用strcpy拷贝,这不是重点。关键是指针变量没有初始化,典型的野指针。
举报

哼小曲

2012-11-22 15:27:05
你那结构体指针根本没有分配,就是调通了也是个野指针
迟早出问题
举报

1653384077.075000

2012-11-22 15:41:23
本帖最后由 yatoo 于 2012-11-22 16:19 编辑

1、你在结构体中定义 了一个数组,那数组名就是一个常量,你企图修改一个常量的值,错误。。
2、main函数中,你只是定义了一个结构体类型的指针,它在内存中空间,和结构体本身根本不一样...结构体指针使用错误.......
举报

1653384077.075000

2012-11-22 16:15:54
在 vc 中试了下,这样可以使用。。。
  1. #include


  2. typedef struct

  3. {
  4.         int len;
  5.         char  *data;

  6. } SM_BUFF;



  7. void main(void)
  8. {
  9.         SM_BUFF *ab, cd;
  10.         ab = &cd;
  11.     cd.len = 80;
  12.     cd.data = "AGAGJ;DFn";

  13.         printf("%s", ab->data);
  14. }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分