结构体定义__packed typedef struct
{
u16 water;
u8 cond;
u8 stir ;
u8 lid;
u8 process_down ;
u16 process_time;
u8 process_power;
}set;
结构体指针定义 set * run_set[20];
run_set=(set*)gui_memin_malloc(20*sizeof(set));//分配内存
这样会出错,求大神给个能行的方法
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
当然会出错,这里的run_set[]是个指针数组,run_set是这个数组的首地址,但归根到底仍然是个指针.并且是指针常量.
所以这里的错误有2个:
1>run_set是数组名,数组名不允许修改.
2>指针所占的内存应该是sizeof(set *).一般是4字节.
1先定义一个指针 8位的就行了 并为这个指针申请一段内存与结构体一样大小 如下
u8 *arm = mymalloc(SRAMIN,sizeof(set)); //申请内存
2:再订义一个结构体指针 并将这个结构体的指针指向前面定义的地个8位指针的首地址
set *const Set = (set *)arm;//定义一个结构体指针首地址指向你申请如个指针的首地址
使用如下,
Set->water = 100; //成员变量付值
新手表示没怎么看懂,感觉还是没法解决我要为结构体数组分配内存且能单独访问的效果
一周热门 更多>