最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于memset()函數(shù)的深入理解

 更新時(shí)間:2013年05月31日 16:58:12   作者:  
本篇文章是對(duì)memset()函數(shù)又進(jìn)行了深一步的了解,需要的朋友參考下
今天寫軟件工程大作業(yè),調(diào)了半天的bug,原來(lái)是對(duì)memset函數(shù)認(rèn)識(shí)不到位造成的。
int max[teachRelationNum];
memset(max,0,sizeof(max));
注意啊,可以使用sizeof(max),也可以使用 sizeof(int)*teachRelationNum,不可以直接使用 teachRelationNum,來(lái)初始化!
一般情況下,可以這樣使用:
memset(max,0,sizeof(max));
memset(max,-1,sizeof(max));
memset(max,'a',sizeof(max));
而不能夠賦初值為100之類的,要想賦初值為100,只能通過for循環(huán)了。
具體使用策略:
包含<string.h>
    char buffer[] = "Hello world\n";
  printf("Buffer before memset: %s\n", buffer);
  memset(buffer, '*', strlen(buffer) );
  printf("Buffer after memset: %s\n", buffer);
輸出結(jié)果:
  Buffer before memset: Hello world
  Buffer after memset: ************
  int array[5] = {1,4,3,5,2};
  memset(array,0,5*sizeof(int));
輸出結(jié)果:0 0 0 0 0
memset(array,1,5*sizeof(int));// 注意 這里與上面的程序不同
輸出結(jié)果:16843009 16843009 16843009 16843009 16843009
因?yàn)閙emset是以字節(jié)為單位就是對(duì)array指向的內(nèi)存的4個(gè)字節(jié)進(jìn)行賦值,每個(gè)都用ASCII為1的字符去填充,轉(zhuǎn)為二進(jìn)制后,1就是00000001,占一個(gè)字節(jié)。一個(gè)INT元素是4字節(jié),合一起就是00000001000000010000000100000001,就等于16843009,就完成了對(duì)一個(gè)INT元素的賦值了。
所以用memset對(duì)非字符型數(shù)組賦初值是不可取的!
  例如有一個(gè)結(jié)構(gòu)體Some x,可以這樣清零:
  memset( &x, 0, sizeof(Some) );
  如果是一個(gè)結(jié)構(gòu)體的數(shù)組Some x[10],可以這樣:
  memset( x, 0, sizeof(Some)*10 );
以上為對(duì)memset()的深刻研究,一部分是自己心得,一部分摘自百度百科。

 

相關(guān)文章

  • 深入解讀C++中的指針變量

    深入解讀C++中的指針變量

    這篇文章主要介紹了深入解讀C++中的指針變量,是C語(yǔ)言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • C++深入探究繼承的概念與使用

    C++深入探究繼承的概念與使用

    繼承是C++面向?qū)ο缶幊讨械囊婚T。繼承是子類繼承父類的特征和行為,或者是繼承父類得方法,使的子類具有父類得的特性和行為。重寫是子類對(duì)父類的允許訪問的方法實(shí)行的過程進(jìn)行重新編寫,返回值和形參都不能改變。就是對(duì)原本的父類進(jìn)行重新編寫,但是外部接口不能被重寫
    2022-05-05
  • c語(yǔ)言 sscanf,scanf,fscanf正則表達(dá)式用法

    c語(yǔ)言 sscanf,scanf,fscanf正則表達(dá)式用法

    每種語(yǔ)言都對(duì)正則表達(dá)式有著不同程度的支持,在C語(yǔ)言中,有輸入功能的這三個(gè)函數(shù)對(duì)正則表達(dá)式的支持并不強(qiáng)大,但是我們還是有必要了解一下
    2018-04-04
  • C++實(shí)現(xiàn)旋轉(zhuǎn)掃描儀的示例代碼

    C++實(shí)現(xiàn)旋轉(zhuǎn)掃描儀的示例代碼

    旋轉(zhuǎn)掃描儀(Rotating?Scanner),也稱為旋轉(zhuǎn)掃描儀或圓形掃描儀,是一種用于獲取圖像和文檔的設(shè)備,下面就跟隨小編一起來(lái)學(xué)習(xí)一下如何使用C++實(shí)現(xiàn)旋轉(zhuǎn)掃描儀功能吧
    2024-02-02
  • pcre函數(shù)詳細(xì)解析

    pcre函數(shù)詳細(xì)解析

    PCRE提供了19個(gè)接口函數(shù),為了簡(jiǎn)單介紹,使用PCRE內(nèi)帶的測(cè)試程序(pcretest.c)示例用法
    2013-09-09
  • 基于c++ ege圖形庫(kù)實(shí)現(xiàn)五子棋游戲

    基于c++ ege圖形庫(kù)實(shí)現(xiàn)五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了基于c++ ege圖形庫(kù)實(shí)現(xiàn)五子棋游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • C++實(shí)現(xiàn)LeetCode(117.每個(gè)節(jié)點(diǎn)的右向指針之二)

    C++實(shí)現(xiàn)LeetCode(117.每個(gè)節(jié)點(diǎn)的右向指針之二)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(117.每個(gè)節(jié)點(diǎn)的右向指針之二),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 淺談分詞器Tokenizer

    淺談分詞器Tokenizer

    分詞器的工作就是分解文本流成詞(tokens).在這個(gè)文本中,每一個(gè)token都是這些字符的一個(gè)子序列。一個(gè)分析器(analyzer)必須知道它所配置的字段,但是tokenizer不需要,分詞器(tokenizer)從一個(gè)字符流(reader)讀取數(shù)據(jù),生成一個(gè)Token對(duì)象(TokenStream)的序列
    2021-06-06
  • Qt實(shí)現(xiàn)簡(jiǎn)易時(shí)鐘

    Qt實(shí)現(xiàn)簡(jiǎn)易時(shí)鐘

    這篇文章主要為大家詳細(xì)介紹了Qt實(shí)現(xiàn)簡(jiǎn)易時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 深入解析int(*p)[]和int(**p)[]

    深入解析int(*p)[]和int(**p)[]

    以下是對(duì)int(*p)[]和int(**p)[]的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下
    2013-07-07

最新評(píng)論

广饶县| 许昌市| 会同县| 屯昌县| 卫辉市| 祁东县| 麻阳| 环江| 临洮县| 西乌珠穆沁旗| 友谊县| 枣阳市| 太和县| 宜昌市| 仁怀市| 连云港市| 靖宇县| 银川市| 阿图什市| 沙湾县| 柳州市| 夏邑县| 高雄县| 双鸭山市| 普洱| 溧水县| 会同县| 贺兰县| 本溪市| 商丘市| 吴川市| 洛隆县| 内丘县| 杭锦后旗| 洛宁县| 玛多县| 乌恰县| 柳林县| 达拉特旗| 浦东新区| 太原市|