野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18551|回复: 4

在32中关于接收数据缓存的问题,请教一下各位

[复制链接]

发表于 2020-6-5 15:31:57 | 显示全部楼层 |阅读模式
是这么一种情况,比如CAN 或者 串口什么的  我接收的数据需要暂时存一下等待处理
然后定义了这么一个结构体  
typedef struct RESV_BUF
{
        uint16_t    mesg_id;
        uint8_t      mesg_cnt;
        uint8_t      mesg_ttl;
        uint16_t    mesg_len;
        uint8_t      *data_buf;
}RESV_BUF;

然后以这个结构体 定义了n个结构体变量 RESV_BUF resv_buf[n];
因为接收的是不定长的数据 , 然后只有在接收到一个mesg 消息的结束标志时才去处理消息 , 而且消息有可能会很长 需要分多次接收    中间可能接收不同的消息 分别存在buf[n]中,
我的意思是 这种通过指针偏移的方式来接收存储数据会不会有什么隐患???   
我感觉是应该把databuf定义成数组  但是这样占用的空间太大
用指针 我隐约感觉会有问题  又说不上了是什么问题。。。

回复

使用道具 举报

发表于 2020-6-5 17:31:19 | 显示全部楼层
用指针 我隐约感觉会有问题  又说不上了是什么问题。。。

那就去测试呀,程序不会骗人的。
回复 支持 反对

使用道具 举报

发表于 2020-6-6 05:41:20 来自手机 | 显示全部楼层
我感觉你的感觉是对的。没有程序不好判断,感觉你的data_buf是一个指针,没有分配内存。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-8 12:45:48 | 显示全部楼层
zhlpan1212 发表于 2020-6-5 17:31
用指针 我隐约感觉会有问题  又说不上了是什么问题。。。

那就去测试呀,程序不会骗人的。 ...

测试过几次  没有发现有什么问题 可能是发送的数据量不够大不够快
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-8 12:48:37 | 显示全部楼层
zllfdd 发表于 2020-6-6 05:41
我感觉你的感觉是对的。没有程序不好判断,感觉你的data_buf是一个指针,没有分配内存。 ...

嗯嗯 我感觉也是的  可是对指针和内存这一块不是太了解  不明白会怎么出问题
老是感觉如果用在大量数据和频繁接收的时候会出问题
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-25 17:55 , Processed in 0.027566 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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