亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這個函數memset(&State[0][0],0,16)是什么意思?

這個函數memset(&State[0][0],0,16)是什么意思?

慕妹3242003 2019-01-27 09:05:48
這個函數memset(&State[0][0],0,16)是什么意思?
查看完整描述

4 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

以State[0][0]的地址為起點,將其后的16個字節設置為0。如果State數組被分配了連續的空間,相當于把2維數組State的前16個字節設置為0;比如State是一個int[2][5],因為int是4字節,所以該語句就是將State[0]中的前4個int設為0;如果State是int[2][3],就是將State[0]全部設為0,并將State[1]的第一個int設為0。

查看完整回答
反對 回復 2019-03-14
?
SMILET

TA貢獻1796條經驗 獲得超4個贊

memset(str,0,80)是用0來初始化以地址str開始的80個連續單元..
memset函數具體的用法是:
memset() 函數常用于內存空間初始化。如: char str[100]; memset(str,0,100); memset用來對一段內存空間全部設置為某個字符,一般用在對定義的字符串進行初始化為‘ ’或‘\0’;例:char a[100];memset(a, '\0', sizeof(a)); memcpy用來做內存拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),會造成b的內存地址溢出。 strcpy就只能拷貝字符串了,它遇到'\0'就結束拷貝;例:char a[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串長度(第一個‘\0’之前)是否超過50位,如超過,則會造成b的內存地址溢出。

查看完整回答
反對 回復 2019-03-14
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

State是個數組,
這個命令是從State數組的首地址開始,以數值0('\0')填充16個連續的字節。
可以稱作這塊內存的初始化。

查看完整回答
反對 回復 2019-03-14
?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

&State[0][0]是獲取二維數組第一行的第一列的元素的地址.這很別扭.直接
memset( (void*)State,0, 16 )就可以了.從state開始的地址的前16個字節設置為零.

查看完整回答
反對 回復 2019-03-14
  • 4 回答
  • 0 關注
  • 1041 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號