九九热这里直有精品,1区二区三区在线播放,玖玖爱在线观看资源,国产aⅴ综合网,午夜福利男女,日本亚洲欧美三级,日韩无码黄色导航,内射少妇13区,中文字幕高清网

您身邊的軟件定制專家--9年開發(fā)經(jīng)驗(yàn)為您護(hù)航

18678812288
0531-88887250

與size_t有關(guān)的C語言編程失誤

文章作者:濟(jì)南軟件開發(fā) 時(shí)間:2016年09月28日

  摘要:濟(jì)南軟件開發(fā)在對(duì)C語言進(jìn)行編程時(shí)候,常常需要使用memset等函數(shù)進(jìn)行數(shù)組或者結(jié)構(gòu)體的初始化,然后這是一把雙刃劍,很容易引發(fā)意想不到的bug。本文主要解析memset系列函數(shù)的使用陷阱。

  1.sizeof初探

  有如下的代碼:

  1

  int a[100],int *b=a;

  試著回答一下這幾個(gè)問題:sizeof是函數(shù)嗎?sizeof a返回多少?是100還是400?sizeof b呢?

  自己去測(cè)試一下,找到答案吧。

  結(jié)論:sizeof不是一個(gè)函數(shù),返回值是sizef_t,表示元素所占用字節(jié)的大小。另外需要注意,它是一個(gè)無符號(hào)類型。

  2.注意函數(shù)接口

  有如下代碼:

  1

  2

  int a[100];

  memset(a,0,100);

  這樣會(huì)將數(shù)組a的每個(gè)元素都初始化成0嗎?

  3.memcpy函數(shù)的實(shí)現(xiàn)

  面試中有一個(gè)經(jīng)典問題:編程實(shí)現(xiàn)memcpy函數(shù),它的函數(shù)原型如下:

  1

  void *memcpy(void *dest, const void *src, size_t n);

  如何去實(shí)現(xiàn)它?

  注意內(nèi)存重疊問題與空指針問題,n傳入負(fù)數(shù)問題。

  本文不給出答案,讀者可以自己編寫然后與標(biāo)準(zhǔn)庫中的函數(shù)進(jìn)行對(duì)照。


想要了解更多詳情歡迎來電咨詢18678812288
登陸網(wǎng)址:m.h6244.cn。
聯(lián)系人:王經(jīng)理。

太仓市| 交城县| 安福县| 永定县| 杭州市| 祁东县| 曲松县| 凤山县| 永定县| 彝良县| 祥云县| 剑阁县| 宝鸡市| 疏勒县| 岚皋县| 庆城县| 侯马市| 霍山县| 鄂温| 伊吾县| 灵川县| 清原| 金门县| 新昌县| 旬阳县| 石城县| 雷波县| 洞口县| 孟连| 莱芜市| 龙山县| 镇沅| 定日县| 乌拉特中旗| 湟中县| 伊宁县| 论坛| 云和县| 台州市| 新闻| 尚义县|