<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
柔性陣列就是一種特殊的陣列
它也是結構體最後一個成員
也就是說,它存在結構體最後一個成員的位置上
1.柔性陣列在結構體的大小是未知的,在sizeof中不計算其大小
#include<stdio.h> struct S { int n ; int arr[0];//或者int arr[]; }; main() { printf("The size of the structure is %d",sizeof(struct S)); return 0; }
2.在結構體中,如果存在柔性陣列,就必須滿足它的前面含有其它的成員,來申請空間,,因為他的大小本身是未知的,不計算大小。
3.包含柔性陣列的結構體要靠malloc去動態申請這塊空間,這就體現了柔性陣列的柔,也就是可以控制大小,且分配的空間一定滿足大於其它成員的大小。
在日常的程式設計中,有時候需要在結構體中存放一個長度動態的陣列
一般的做法,是在結構體中定義一個指標成員,這個指標成員指向該陣列所在的動態記憶體空間
#include<stdio.h> struct S { int n; int* arr; }; int main() { struct S* ps = (struct S*)malloc(sizeof(struct S)); ps->n = 100; ps->arr = (int*)malloc(40); free(ps->arr); ps->arr = NULL; free(ps); ps = NULL; return 0; }
通過柔性陣列來實現如下:
#include<stdio.h> struct S { int n; int arr[0];//柔性陣列 }; int main() { struct S* ps = (struct S*)malloc(sizeof(struct S)+40); //使用 //改變申請的空間 struct S* tmp= (struct S*)realloc(ps, sizeof(struct S)+80); if (tmp == NULL) { return; } if (tmp != NULL) { ps = tmp; } return 0; }
1.此方式會多次進行開闢於釋放動態申請的空間,就容易會導致錯誤
2.容易出現記憶體碎片
當指標動態開闢的足夠多的時候,中間就會出現很多記憶體碎片,每個記憶體碎片不連續
就會導致空間的浪費
3.相較於柔性陣列,CPU存取的速度要慢一些
CPU存取記憶體大部分在存取一個空間後,就會存取相鄰的空間,就不一次性存取下一個連續的空間,這就會導致,在一定程度上的降速。
本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注it145.com的更多內容!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45