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