中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

新手搭建論壇己做網(wǎng)站網(wǎng)絡(luò)銷售怎么做才能做好

新手搭建論壇己做網(wǎng)站,網(wǎng)絡(luò)銷售怎么做才能做好,如何做凡客網(wǎng)站,自己接私單網(wǎng)站開發(fā)一、介紹 柔性數(shù)組(Flexible Array),又稱可變長數(shù)組。一般數(shù)組的長度是在編譯時確定,而柔性數(shù)組對象的長度在運行時確定。在定義結(jié)構(gòu)體時允許創(chuàng)建一個空數(shù)組(例如:arr [ 0 ] ),該數(shù)…

一、介紹

柔性數(shù)組(Flexible Array),又稱可變長數(shù)組。一般數(shù)組的長度是在編譯時確定,而柔性數(shù)組對象的長度在運行時確定。在定義結(jié)構(gòu)體時允許創(chuàng)建一個空數(shù)組(例如:arr [ 0 ]? ),該數(shù)組的大小可在程序運行過程中按照你的需求變動。

struct S
{int n;int arr[0]; // 柔性數(shù)組成員
};// 有些編譯器會報錯無法編譯可以改成:struct S
{int n;int arr[]; // 柔性數(shù)組成員
};

柔性數(shù)組(Flexible Array),是在C語言的 C99 標(biāo)準(zhǔn)中,引入的新特性。結(jié)構(gòu)中的最后一個元素的大小允許是未知的數(shù)組,即為柔性數(shù)組。


二、柔性數(shù)組的特點

  1. 結(jié)構(gòu)中的柔性數(shù)組成員前面必須至少一個其他成員。
  2. sizeof 返回的這種結(jié)構(gòu)大小不包括柔性數(shù)組的內(nèi)存。
  3. 包含柔性數(shù)組成員的結(jié)構(gòu)用?malloc ()?函數(shù)進行內(nèi)存的動態(tài)分配,并且分配的內(nèi)存應(yīng)該大于結(jié)構(gòu)的大小,以適應(yīng)柔性數(shù)組的預(yù)期大小。
#include <stdio.h>struct S
{int n; //4int arr[0]; //大小是未知的
}s;int main(){printf("%d\n", sizeof(s)); //4struct S* ps = (struct S*)malloc(sizeof(struct S) + sizeof(int)); // 后面+的大小就是給柔性數(shù)組準(zhǔn)備的return 0;
}

因為這段空間是 malloc 出來的,所以后面 arr 的空間如果不夠可以進行調(diào)整。它的大小是可以改變的,這里就體現(xiàn)出了 “柔性” 的意義。


三、柔性數(shù)組的使用

// 代碼一
#include <stdio.h>
#include <stdlib.h>struct S
{int n;int arr[0];
};int main()
{struct S* ps = (struct S*)malloc(sizeof(struct S) + sizeof(int));ps->n = 10;for (int i = 0; i < 10; i++){ps->arr[i] = i;}struct S* ptr = (struct S*)realloc(ps, sizeof(struct S) + 20*sizeof(int));if (ptr != NULL){ps = ptr;}free(ps);ps = NULL;return 0;
}
這樣柔性數(shù)組成員? arr ,相當(dāng)于獲得了? 10? 個整型元素的連續(xù)空間。

四、柔性數(shù)組的優(yōu)勢

// 代碼二
#include <stdio.h>
#include <stdlib.h>struct S
{int n;int* arr;
};int main()
{struct S* ps = (struct S*)malloc(sizeof(struct S));if (ps == NULL){return 1;}ps->n = 10;ps->arr = (int*)malloc(10 * sizeof(int));if (ps->arr == NULL){return 1;}for (int i = 0; i < 10; i++){ps->arr[i];}int* ptr = (struct S*)realloc(ps->arr, 20 * sizeof(int));if (ptr != NULL){ps->arr = ptr;}// 這里需要回收2個空間,且回收必須有先后free(ps->arr); // 先free第二塊空間ps->arr = NULL;free(ps);ps = NULL;return 0;
}
上述 代碼一 代碼二 可以完成同樣的功能,但是代碼一 的實現(xiàn)有兩個好處
  • 第一個好處是:方便內(nèi)存釋放
雖然 代碼二實現(xiàn)了相應(yīng)的功能,但是和 代碼一相比還是有很多不足之處的。 代碼二使用指針完成, 進行了兩次 malloc ,而兩次 malloc 對應(yīng)了兩次 free ,相比于 代碼一更容易出錯。
如果我們的代碼是在一個給別人用的函數(shù)中,你在里面做了兩次內(nèi)存分配,并把整個結(jié)構(gòu)體返回給用戶。雖然用戶調(diào)用 free 可以釋放結(jié)構(gòu)體,但是用戶并不知道這個結(jié)構(gòu)體內(nèi)的成員也需要 free,所以你不能指望用戶來發(fā)現(xiàn)這件事。所以,如果我們把結(jié)構(gòu)體的內(nèi)存以及其成員要的內(nèi)存一次性分配好(而不是多次分配),并且返回給用戶一個結(jié)構(gòu)體指針, 用戶只需使用一次 free 就可以把所有的內(nèi)存都給釋放掉,可以間接地減少內(nèi)存泄露的可能性。
  • 第二個好處是:這樣有利于訪問速度。

????????連續(xù)內(nèi)存多多少少有益于提高訪問速度,還能減少內(nèi)存碎片。malloc 的次數(shù)越多,產(chǎn)生的內(nèi)存碎片就越多,這些內(nèi)存碎片不大不小,再次被利用的可能性很低。內(nèi)存碎片越多,內(nèi)存的利用率就會降低。頻繁的開辟空間效率會變低,碎片也會增加。

http://www.risenshineclean.com/news/8947.html

相關(guān)文章:

  • 百度框架戶開戶渠道seo建設(shè)招商
  • 門戶網(wǎng)站信息發(fā)布管理辦法童程童美少兒編程怎樣收費
  • 揭陽網(wǎng)站制作建設(shè)免費發(fā)布信息的網(wǎng)站平臺
  • 微信二維碼網(wǎng)站建設(shè)白帽seo是什么
  • 學(xué)校官方網(wǎng)站專業(yè)做網(wǎng)站
  • 云南網(wǎng)站制作案例百度云盤資源共享鏈接群組鏈接
  • 武漢工程信息網(wǎng)seo入門教程視頻
  • 網(wǎng)絡(luò)公司的網(wǎng)頁設(shè)計圖片優(yōu)化是什么意思
  • 大良商城網(wǎng)站建設(shè)2023疫情最新消息今天
  • 個人站長做導(dǎo)航網(wǎng)站百度手機瀏覽器
  • 網(wǎng)站后臺后綴名惠州seo代理商
  • 行業(yè)獵頭網(wǎng)seo中文
  • 國內(nèi)網(wǎng)站賞析社群營銷的具體方法
  • dw做網(wǎng)站教程汕頭搜索引擎優(yōu)化服務(wù)
  • 學(xué)習(xí)做網(wǎng)站soso搜搜
  • wordpress 扁平化響應(yīng)式主題谷歌seo課程
  • 建設(shè)外賣網(wǎng)站規(guī)劃書網(wǎng)站頁面布局和樣式設(shè)計
  • 青島企業(yè)建設(shè)網(wǎng)站企業(yè)電商運營工資大概多少
  • 類似17做網(wǎng)店的網(wǎng)站杭州百度seo
  • 咋么做網(wǎng)站谷歌廣告推廣怎么做
  • 青島市網(wǎng)站建設(shè)公司百度官網(wǎng)認(rèn)證申請
  • 佛山微網(wǎng)站建設(shè) 天博廣東省疫情最新
  • 宜昌視頻網(wǎng)站建設(shè)優(yōu)化大師最新版下載
  • 做網(wǎng)站一個月能掙多少媒體:多地新增感染趨勢回落
  • 畢業(yè)設(shè)計題目河南靠譜seo電話
  • 一個人搞得定網(wǎng)站建設(shè)網(wǎng)絡(luò)seo優(yōu)化公司
  • 如何在網(wǎng)站申請做co谷歌搜索引擎入口2021
  • 網(wǎng)站建設(shè)技術(shù)指標(biāo)營銷型網(wǎng)站建設(shè)步驟
  • 溫州 外貿(mào)網(wǎng)站制作中國站長站官網(wǎng)
  • 阿里云網(wǎng)站備案要多久營銷型網(wǎng)站是什么意思