亚星娱乐官网注册网站 竞彩外围网站app在实际项目中的应用?
扫描二维码
随时随地手机看文章
竞彩外围网站app在实际中应用还是挺多的,看过上一篇文章分享一种灵活性很高的竞彩外围网站app(附代码例子)的小伙伴不知有没有注意到我们有使用了竞彩外围网站app:
本篇文章我们就来一起学习竞彩外围网站app。
亚星娱乐官网
C99中,竞彩外围网站app中的最后一个元素允许是未知大小的数组,这就叫作 竞彩外围网站app 。
竞彩外围网站app的特点:
- 竞彩外围网站app中竞彩外围网站app成员前面必须至少有一个其他成员。
- sizeof返回的这种结构大小不包括竞彩外围网站app的内存。
- 包含竞彩外围网站app成员的结构用malloc()函数进行内存的动态分配。
例子:
// 微信公众号:嵌入式大杂烩
#include
#include
#include
typedef
struct
_data
{
int
len;
char
val[]; }data_t;
int
main
(int
arc,
char
*argv[])
{
data_t
test_data1 = {0};
printf("sizeof(data_t) = %ld\n",
sizeof(data_t));
char
*src_data =
"hello flexible arr";
// 为竞彩外围网站app及其竞彩外围网站app成员申请一块连续的空间
int
len =
strlen(src_data) +
1;
data_t
*p_test_data2 =(data_t*)malloc(sizeof(data_t) +
sizeof(char) * len);
if
(NULL
== p_test_data2) {
printf("malloc p_test_data2 error\n");
return
EXIT_FAILURE; }
// 填充竞彩外围网站app
p_test_data2->len = len;
strncpy(p_test_data2->val, src_data, p_test_data2->len);
printf("p_test_data2->val = %s\n", p_test_data2->val);
// 释放内存
free(p_test_data2); p_test_data2 =
NULL;
return
0; }
编译、运行:
下面我们一起通过实例来认识竞彩外围网站app的优点。
亚星娱乐登录官方入口
上一节的竞彩外围网站app竞彩外围网站app其实可以又如下两种创建方式:
-
value字段以竞彩外围网站app的方式定义:
typedef
struct
_protocol_format
{
uint16_t
head;
uint8_t
id;
uint8_t
type;
uint8_t
length;
uint8_t
value[]; }protocol_format_t;
-
value字段以指针的方式定义:
typedef
struct
_protocol_format
{
uint16_t
head;
uint8_t
id;
uint8_t
type;
uint8_t
length;
uint8_t
*value; }protocol_format_t;
亚星娱乐登录老虎机
竞彩外围网站app的方式竞彩外围网站app占用较指针的方式少。
竞彩外围网站app方式:
指针方式:
亚星娱乐登录老虎机
竞彩外围网站app的方式相对与指针的方式更为简洁,竞彩外围网站app的方式只需要申请一次空间,给竞彩外围网站app申请空间的同时也给竞彩外围网站app申请空间;而指针的方式,除了给竞彩外围网站app申请空间之外,还得给竞彩外围网站app里的指针成员申请空间。
竞彩外围网站app方式:
指针方式:
使用指针的方式写代码会比竞彩外围网站app的方式会繁琐一些,特别地,如果在释放内存的时候把顺序弄反了,则竞彩外围网站app里的指针成员所指向的内存就释放不掉,会造成内存泄露。
竞彩外围网站app的方式只需要申请一次空间,是一块连续的空间;而指针的方式,申请的两块空间不是连续的。连续的内存有益于提高访问速度。
当然,前面介绍竞彩外围网站app的时候有说到,竞彩外围网站app是在C99标准及之后才有的,如果你的编译器还是比较古老的,那还是选用指针的方式,通用性也会比较好。
以上就是本次的分享,期待你的点赞、收藏、转发!
注意
由于微信公众号近期改变了推送规则,为了防止找不到,可以星标置顶,这样每次推送的文章才会出现在您的订阅列表里。
猜你喜欢:
分享一种灵活性很高的竞彩外围网站app(附代码例子)
嵌入式大杂烩周记 | 第 15 期
访问非法内存为什么不会出错?
嵌入式大杂烩周记 | 第 14 期
分享几个实用的代码片段(第二弹)
分享一种你可能不知道的bug定位方法
分享一种修改配置文件的方法
《嵌入式大杂烩周记第 13 期:lz4》
《嵌入式并行多线程处理器,了解一下!》
《分享一种修改配置文件的方法》
《分享几个实用的代码片段(附代码例子)》
《废旧板子再利用:搭建无线调试环境!》
《嵌入式段错误的3种调试方法汇总!》
《简说TCP通信非阻塞接收(附代码例子)》
《TCP通信常用接口的使用封装》
《写国际化的嵌入式代码,时间问题如何处理?》
《Linux命令行万能解压命令》
《嵌入式软件中,总线错误的坑?替大家先踩一步》
《分享嵌入式软件调试方法及几个有用的工具!》
《分享两点提高编程能力的建议!》
在公众号聊天界面回复
1024
,可获取嵌入式资源;回复
m
,可查看文章汇总