memset和fill的初始化問題

2021-10-01 05:14:34 字數 805 閱讀 4778

對於memset是按照1位元組為單位對記憶體進行填充。

對於int型:

可以對**-1和0進行初始化

若對無窮大用memset初始化,必須是0x3f3f3f3f**,不能是99999這樣的無窮大。且型別必須是int型,不能是別的型別。

fill也能進行初始化,原型是

fill(vector.begin(),vector.end(),val)

將陣列從初位置到末位置的每乙個值都賦值為val。

charch[

20];inta[

20];memset(a

,0,sizeof(a

));對

memset(a

,-1,

sizeof(a

));對

memset(a

,1,sizeof(a

));錯

memset(a

,2,sizeof(a

));錯

fill(a

,a+n

,1);

對fill(a

,a+n

,213233);

對fill(a

,a+n

,0.1);

對fill(ch

,ch+n

,'*');

思想的昇華,在於每天的平凡事中

cpp除了memset 初始化還有fill 呢

參考部落格 cpp reference 參考 memset 是 cstring 裡面的函式,用處也主要是給char型別的字串賦初值,用在int型別陣列是不合理的用法。那麼對於非字串的容器該如何賦初值呢?include include include using namespace std intma...

fill和memset對結構體進行初始化和覆蓋

fill的標頭檔案 include memset的標頭檔案 include或 include memset可以初始化整個結構體,或者結構體中的某個陣列,但只能初始化為0或 1 fill只能初始化結構體中的某個陣列,不能初始化整個結構體,但可以任意賦值 在結構體定義的同時初始化 在主函式中的覆蓋,同理...

memset初始化陣列

memset初始化陣列 結構體也可初始化 不過我在此處並未對結構體初始化.memst按位元組進行初始化,可以選擇將陣列初始化為0或初始化為 1 include include include include include using namespace std int main include i...