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

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

 更新時(shí)間:2013年05月31日 16:58:12   作者:  
本篇文章是對(duì)memset()函數(shù)又進(jìn)行了深一步的了解,需要的朋友參考下
今天寫軟件工程大作業(yè),調(diào)了半天的bug,原來是對(duì)memset函數(shù)認(rèn)識(shí)不到位造成的。
int max[teachRelationNum];
memset(max,0,sizeof(max));
注意啊,可以使用sizeof(max),也可以使用 sizeof(int)*teachRelationNum,不可以直接使用 teachRelationNum,來初始化!
一般情況下,可以這樣使用:
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語言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • C++深入探究繼承的概念與使用

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

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

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

    每種語言都對(duì)正則表達(dá)式有著不同程度的支持,在C語言中,有輸入功能的這三個(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è)備,下面就跟隨小編一起來學(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)論

威信县| 永康市| 北安市| 彰化市| 临泉县| 城口县| 道孚县| 睢宁县| 英超| 黄大仙区| 蒙山县| 德兴市| 什邡市| 深州市| 宾川县| 余江县| 沙河市| 逊克县| 金门县| 淮安市| 南昌县| 安仁县| 来凤县| 万宁市| 郸城县| 府谷县| 色达县| 建始县| 莱州市| 东源县| 农安县| 保亭| 三穗县| 普格县| 始兴县| 阜南县| 台东市| 耒阳市| 靖州| 双峰县| 廊坊市|