OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3079|回复: 3

LWIP中的pbuf->payload的值更改后,最后在释放这个pbuf时,最初申请这个pbuf时给分配的地址所在内存会被释放吗

[复制链接]

5

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2019-12-3
在线时间
8 小时
发表于 2020-5-21 11:11:32 | 显示全部楼层 |阅读模式
1金钱
LWIP中的pbuf->payload的值更改后,最后在释放这个pbuf时,最初申请这个pbuf时给分配的地址所在内存会被释放吗

如下代码,申请pbuf内存(ptr),成功后的 ptr->payload已经给分配好了,但是代码下一步直接把 ptr->payload指向了另一处,最后在释放ptr的时候,最初申请的那部分(ptr->payload)内存会被释放吗
之所以我会有这个疑问,我是这么理解的:pbuf_alloc申请pbuf的时候,分配pbuf链表,并且将每个pbuf表中的 pbuf->payload(也就是保存数据的那部分)的内存保护起来,再申请pbuf的时候,不会指向到pbuf->payload这里,最后pbuf_free释放pbuf的时候,根据pbuf->payload和pbuf->len将这部分内存再释放掉,不知道我理解的对不对。



    struct pbuf *ptr;
    ptr=pbuf_alloc(PBUF_TRANSPORT,strlen((char*)tcp_demo_sendbuf),PBUF_POOL); //申请内存
    if(ptr)
    {
        ptr->payload=(void*)tcp_demo_sendbuf;
        udp_send(upcb,ptr);    //udp发送数据
        pbuf_free(ptr);//释放内存
    }


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2018-12-27
在线时间
0 小时
发表于 2020-5-21 11:11:35 | 显示全部楼层
帮顶,大家来帮忙解答一下。。
回复

使用道具 举报

5

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2019-12-3
在线时间
8 小时
 楼主| 发表于 2020-5-21 11:50:39 | 显示全部楼层
有没有大神啊
回复

使用道具 举报

5

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2019-12-3
在线时间
8 小时
 楼主| 发表于 2020-5-21 14:23:07 | 显示全部楼层
顶一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-1 18:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表