芯片资讯
热点资讯
- FPGA排序-冒泡排序(Verilog版)介绍
- Infineon品牌SLE 4432 C芯片IC EEPROM 256BYTE CHIP的技术和方案应用介绍
- 深度解析索尼的多重曝光HDR技术
- FPGA浮点IP内核究竟有哪些优势呢?
- Microchip微芯半导体AT97SC3205T-X3A1C20B芯片FF COM I2C TPM 4.4MM TSS
- 聊一聊MEMS先生的微机电系统
- Melexis品牌MLX81113KDC-BAB-000-RE芯片IC LIN RGB CTRLR 32KB 4CH 8
- pH传感器的工作原理及应用
- Atmel品牌AT17LV65-10JI芯片CONFIG MEMORY, 64KX1, SERIAL的技术和方案应用介绍
- 大疆的低成本高阶智能驾驶方案详解
你的位置:EEPROM带电可擦可编程IC存储器芯片大全-亿配芯城 > 芯片资讯 > 变长数据包数据结构定义
变长数据包数据结构定义
- 发布日期:2024-01-01 12:03 点击次数:182 变长数据包
定长数组使用方便, 但是却浪费空间, 指针形式只多使用了一个指针的空间, 不会造成大量空间分浪费, 但是使用起来需要多次分配, 多次释放, 那么有没有一种实现方式能够既不浪费空间, 又使用方便的呢?
GNU C 的0长度数组(变长数组/柔性数组)就是这样一个扩展. 对于0长数组的这个特点, 电子元器件PDF资料大全很容易构造出变成结构体, CMOS图像传感器集成电路芯片EEPROM带电可擦可编程存储器芯片大全如缓冲区,芯片交易网IC交易网数据包等等:
数据结构定义// 0长度数组 struct zero_buffer { int len; char data[0]; };数据结构大小
这样的变长数组常用于网络通信中构造不定长数据包, EEPROM带电可擦可编程存储器芯片大全 不会浪费空间浪费网络流量, ATMEGA系列ATMEL芯片COM 因为char data[0]; 只是个数组名, 是不占用存储空间的,
即 sizeof(struct zero_buffer) = sizeof(int)
数据包创建我们使用的时候, 只需要开辟一次空间即可:
/// 开辟 if ((zbuffer = (struct zero_buffer *)malloc(sizeof(struct zero_buffer) + sizeof(char) * CURR_LENGTH)) != NULL) { zbuffer- >len = CURR_LENGTH; memcpy(zbuffer- >data, "Hello World", CURR_LENGTH); printf("%d, %sn", zbuffer- >len, zbuffer- >data); }释放
释放也是一样的, 一次释放即可:
/// 销毁 free(zbuffer); zbuffer = NULL;
相关资讯
- EEPROM的数据存储格式是什么2024-02-24
- EEPROM的数据保持时间有多长?2024-02-07
- 微流控赋能芯片冷却,解决数据中心散热问题2024-01-17
- fpga跨时钟域通信时,慢时钟如何读取快时钟发送过来的数据?2023-12-29
- DS1603DA-3U-V2.0超声波液位数据传感器系列简介2023-12-27
- 数据中心为什么要部署FPGA?2023-12-26