浅谈C++中memset函数的用法
生活随笔
收集整理的這篇文章主要介紹了
浅谈C++中memset函数的用法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
淺談C++中memset函數(shù)的用法
?
memset函數(shù)的頭文件是cstring, 實(shí)際上是一個(gè)字符串處理函數(shù),但常用于給靜態(tài)數(shù)組(不是new出來的數(shù)組)賦特定初值。
#include<cstring>C++ Reference關(guān)于memset函數(shù)的鏈接頁:memset - C++ Reference
在使用的時(shí)候有2點(diǎn)需要特別注意:
1. value雖然是以int(32 bit)類型給的,但最終是轉(zhuǎn)化為了unsigned char(8 bit)
所以,可以賦的最大初值是memset(a,0x3f, sizeof(a)),相當(dāng)于賦了1061109567,
memset(a, 0xff, sizeof(a))相當(dāng)于賦-1,memset(a, 0, sizeof(a))相當(dāng)于賦0,而想要賦初值1是沒法實(shí)現(xiàn)的
memset(a,0x3f,sizeof(a)); // 1061109567,1061109567,1061109567,1061109567,1061109567 memset(a, 1, sizeof(a)); // 16843009,16843009,16843009,16843009,16843009?
2. 動(dòng)態(tài)開辟(new)出來的數(shù)組的頭指針(p)經(jīng)過sizeof運(yùn)算后得到只是頭指針的大小而不是整個(gè)數(shù)組的大小,所以動(dòng)態(tài)開辟的數(shù)組不能用memset賦初值,如果要賦初值0的話,直接new的時(shí)候后面添一個(gè)()就行了。
?
int* p = new int[5](); // 0,0,0,0,0 memset(p, 1, sizeof(p)); // 16843009,0,0,0,0 delete[] p;?
?
?
總結(jié)
以上是生活随笔為你收集整理的浅谈C++中memset函数的用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果悬浮球_幽眼进阶:苹果优化+安卓内测
- 下一篇: s3c2440移植MQTT