首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Contiki中成员内存分配

Contiki中成员内存分配
EN

Stack Overflow用户
提问于 2017-03-15 18:50:08
回答 1查看 328关注 0票数 0

在Contiki中,我像这样声明了一个链表:

代码语言:javascript
复制
MEMB(recv_memb, struct record, MAX_RECORD);
LIST(recv_list);

在使用链表之后,我像这样释放分配的内存:

代码语言:javascript
复制
for(n = list_head(recv_list); n != NULL; n = n->next)
{     
    list_remove(recv_list,n); 
    memb_free(&recv_memb,n); 
}

但是在到达MAX_RECORD之后,节点重新启动,我如何释放内存以供另外30条记录使用?

我正在Contiki Cooja模拟器中模拟网络场景,代码是Contiki编程和C语言的组合。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-15 19:08:13

一个问题(不确定这是否能完全解决你的问题……)是在元素已经从列表中删除并释放内存之后,在语句for(n = list_head(recv_list); n != NULL; n = n->next)中访问n->next指针。

试着这样做:

代码语言:javascript
复制
void *next;
for(n = list_head(recv_list); n != NULL; n = next)
{     
    next = n->next;
    list_remove(recv_list,n); 
    memb_free(&recv_memb,n); 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42807596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档