memset需要注意的長度問題

2021-09-02 06:54:12 字數 470 閱讀 8629

例1:

char str[9];

我們用memset給str初始化為「00000000」,用法如下

memset(str,0,8);

注意,memset是逐字節 拷貝的。

下面再看乙個例子:

例2:int num[8];

我們用memset給str初始化為,

memset(num,1,8);//這樣是不對的

乙個int是4個位元組的,8個int是32個位元組,所以首先要賦值的長度就不應該為8而是32。

因為memset是 逐字節 拷貝,以num為首位址的8位元組空間都被賦值為1,

即乙個int變為0x00000001 00000001 00000001 00000001,顯然,把這個數化為十進位制不會等於1的。

所以,在memset使用時要千萬小心,在給char以外的陣列賦值時,只能初始化為0或者-1。因為在計算機裡,0的二進位制都是0,-1的二進位制都是1。

需要注意的問題

決策樹id3和c4.5的差別?各自優點?boost演算法 cart 回歸樹用平方誤差最小化準則,分類樹用基尼指數最小化準則 gbdt與隨機森林演算法的原理以及區別。優化演算法中常遇到的kkt條件?作用是?最近鄰演算法knn 分類與回歸 l1和l2函式?l1和l2正則項的比較,如何解決 l1 求導困難...

mysql字元長度和位元組長度需要注意

今天在mysql字串拼接的過程中,犯了個錯誤,貼上錯誤 set phasename substring phasename,1,length phasename 1 去掉最後乙個逗號這裡我用的是length phasename 沒有達到我想要的目標結果。因為phasename是 吃飯,睡覺,打豆豆,...

Qml settings 需要注意的問題

qml 中使用 settings 可以儲存一些簡單的資訊,例如使用者名稱,密碼,視窗位置,大小等,沒有sqlite那麼麻煩,簡單易用哦 環境 qt5.8 for android windows 7 main.qml import qtquick 2.7import qtquick.window 2....