你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

uCII里面的任务队列,返回指针先分配内存还是后分配内存

[复制链接]
千羽猎鹰 提问时间:2015-3-11 10:12 /
一个串口接收处理程序
在串口接收完成后发送消息队列,在处理程序中等待此消息队列,等到消息队列后开始处理
消息队列是有返回值的,是一个指针,所以先建立一个指针,但是由于不知道消息的长度,没有给指针分配空间,在处理串口后再分配空间
在处理函数中这样

uint8_t  * ptr;

while(1)
{
  ptr= OSQPend(Q_rUart1REV, 0, &err);  //串口1接收完成;ptr岂不是一个野指针?可是要初始化的话也不知道长度啊
  ...  //对数据包进行分析,然后知道数据包长度len
       //给ptr分配内存空间
       //继续对ptr串口数据包分析
}

类似这种,在给指针分配空间以前就开始使用,使用过程中再分配空间的,怎么处理会比较好,或者是我的什么地方理解有问题
求指导  谢谢

收藏 评论4 发布时间:2015-3-11 10:12

举报

4个回答
回答时间:2015-3-11 10:20:45
不会的,这里返回的是指针,他已经指向了接收数据的空间。数据长度用strlen来计算。
回答时间:2015-3-11 10:21:06
楼主可以看OSQPend的源代码加以理解。
千羽猎鹰 回答时间:2015-3-11 10:54:59
哦 看了源码大概明白了
strlen对于没有初始化过的指针不能用吧
超导式 回答时间:2015-3-11 11:07:47
帮顶!!!!!!!!1

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版