欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言memset函數(shù)使用方法詳解

 更新時(shí)間:2017年10月31日 11:49:14   作者:趙子蒼  
這篇文章主要介紹了C語言memset函數(shù)使用方法詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家掌握這樣的方法,需要的朋友可以參考下

C語言memset函數(shù)使用方法詳解

一。函數(shù)原形   void *  memset(void*s, int ch,size_t n)

二。函數(shù)作用  將以s內(nèi)存地址為首的連續(xù)n個(gè)字節(jié)的內(nèi)容置成ch,一般用來對(duì)大量結(jié)構(gòu)體和數(shù)組進(jìn)行清零

三。常見錯(cuò)誤

1.搞反了 ch 和 n的位置

對(duì)char[20]清零,一定是 memset(a,0,20);

2.過度使用memset

3.其實(shí)這個(gè)錯(cuò)誤嚴(yán)格來講不能算用錯(cuò)memset,但是它經(jīng)常在使用memset的場(chǎng)合出現(xiàn)

int fun(strucy something * a) 
{ 
..... 
memset(a,0,sizeof(a)); 
..... 
} 

這里錯(cuò)誤的原因是VC函數(shù)傳參過程中的指針降級(jí),導(dǎo)致sizeof(a),返回的是一個(gè) something*指針類型大小的的字節(jié)數(shù),如果是32位,就是4字節(jié)。經(jīng)常使用這種形式

memset(a,0,n*sizeof(type));

4.想對(duì)數(shù)組初始化為1

int main() 
{ 
   int a[20]; 
   memset(a,1,20); 
}

這種方法不能初始化為1。原因是memset函數(shù)是按照字節(jié)賦值的,int 是4個(gè)字節(jié)所以為0x01010101,就是十進(jìn)制的16843009。 

如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • C語言+shell實(shí)現(xiàn)linux網(wǎng)卡狀態(tài)檢測(cè)

    C語言+shell實(shí)現(xiàn)linux網(wǎng)卡狀態(tài)檢測(cè)

    這篇文章主要為大家詳細(xì)介紹了C語言+shell實(shí)現(xiàn)linux網(wǎng)卡狀態(tài)檢測(cè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 最新評(píng)論