关于单片机动态分配内存的问题
答案:1 悬赏:70 手机版
解决时间 2021-02-06 08:10
- 提问者网友:两耳就是菩提
- 2021-02-05 13:09
我想知道单片机可不可以用动态链表,可以的话具体怎么用,需要注意什么,还有init_mempool这个函数是怎么用
最佳答案
- 五星知识达人网友:duile
- 2021-02-05 13:54
动态建立双向查询的线性链表,在vc上面编好调试能满足效果,但是单片机还是不行,malloc函数动态开辟存储空间失败,方法二第一个节点建立没问题但是,但是CreatMember()创建第二个节点就出问题了,两个函数在VC下工作完全正常,不知道 楼主是怎么解决这个问题的,真心请教:
void InitLine()
{
//lpparam=(struct PARAM *)malloc(sizeof(struct PARAM));方法一失败了
struct PARAM mid_chang;//方法二第一个节点建立没问题但是
lpparam=&mid_chang;
head=end=lpparam;
lpparam->param=0.5647;
strcpy(head->leftsign,"sfd");
head->next=head->back=NULL;
}
void CreatMember()
{
struct PARAM mid_chang1;
lpparam->next =&mid_chang1;
lpparam->next ->back=lpparam;
lpparam->next->next =NULL;
lpparam=end=lpparam->next;
lpparam->param=0.2345;
strcpy(lpparam->leftsign,"dfs");
}
void InitLine()
{
//lpparam=(struct PARAM *)malloc(sizeof(struct PARAM));方法一失败了
struct PARAM mid_chang;//方法二第一个节点建立没问题但是
lpparam=&mid_chang;
head=end=lpparam;
lpparam->param=0.5647;
strcpy(head->leftsign,"sfd");
head->next=head->back=NULL;
}
void CreatMember()
{
struct PARAM mid_chang1;
lpparam->next =&mid_chang1;
lpparam->next ->back=lpparam;
lpparam->next->next =NULL;
lpparam=end=lpparam->next;
lpparam->param=0.2345;
strcpy(lpparam->leftsign,"dfs");
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯