memset函数的使用
void *memset(void *s, int ch, size_t n);
說明:將s中前n個字節 (typedef unsigned int size_t)用 ch 替換并返回 s
關于memset有幾個注意事項:
1.不能初始化為數值1:
如果程序的數組a是字符型的,字符型占據內存大小是1Byte,而memset函數也是以字節為單位進行賦值的,所以輸出沒有問題。
而如果程序數組a是整型的,使用 memset還是按字節賦值,這樣賦值完以后就等于16843009,就完成了對一個INT元素的賦值了。
所以用memset對非字符型數組賦初值是不可取的!
memset是以字節為單位就是對array指向的內存的4個字節進行賦值,每個都用ASCⅡ為1的字符去填充,轉為二進制后,1就是00000001,占一個字節。一個INT元素是4字節,合一起就是
00000001000000010000000100000001即16843009。
2.最后一個參數經常使用sizeof:
不同的機器上int的大小也可能不同,所以最好用sizeof()
3.對于結構體初始化:
例如有一個結構體Some x,可以這樣清零:
memset(&x,0,sizeof(Some));
如果是一個結構體的數組Some x[10],可以這樣:
memset(x,0,sizeof(Some)*10);
如果結構體中有數組的話還是需要對數組單獨進行初始化處理的.
總結
以上是生活随笔為你收集整理的memset函数的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 荣耀折叠屏手机 618 销量增长 179
- 下一篇: 软件需求分析的必要性