C語言memset函數使用方法詳解
C語言memset函數使用方法詳解
一。函數原形 void * memset(void*s, int ch,size_t n)
二。函數作用 將以s內存地址為首的連續(xù)n個字節(jié)的內容置成ch,一般用來對大量結構體和數組進行清零
三。常見錯誤
1.搞反了 ch 和 n的位置
對char[20]清零,一定是 memset(a,0,20);
2.過度使用memset
3.其實這個錯誤嚴格來講不能算用錯memset,但是它經常在使用memset的場合出現
int fun(strucy something * a) { ..... memset(a,0,sizeof(a)); ..... }
這里錯誤的原因是VC函數傳參過程中的指針降級,導致sizeof(a),返回的是一個 something*指針類型大小的的字節(jié)數,如果是32位,就是4字節(jié)。經常使用這種形式
memset(a,0,n*sizeof(type));
4.想對數組初始化為1
int main() { int a[20]; memset(a,1,20); }
這種方法不能初始化為1。原因是memset函數是按照字節(jié)賦值的,int 是4個字節(jié)所以為0x01010101,就是十進制的16843009。
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
上一篇:C語言數據結構遞歸之斐波那契數列
欄 目:C語言
下一篇:C語言數據結構之串插入操作
本文標題:C語言memset函數使用方法詳解
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1062.html
您可能感興趣的文章
- 04-02c語言函數調用后清空內存 c語言調用函數刪除字符
- 04-02c語言的正則匹配函數 c語言正則表達式函數庫
- 04-02func函數+在C語言 func函數在c語言中
- 04-02c語言中對數函數的表達式 c語言中對數怎么表達
- 04-02c語言用函數寫分段 用c語言表示分段函數
- 04-02c語言編寫函數冒泡排序 c語言冒泡排序法函數
- 04-02c語言沒有round函數 round c語言
- 04-02c語言分段函數怎么求 用c語言求分段函數
- 04-02C語言中怎么打出三角函數 c語言中怎么打出三角函數的值
- 04-02c語言調用函數求fibo C語言調用函數求階乘


閱讀排行
本欄相關
- 04-02c語言函數調用后清空內存 c語言調用
- 04-02func函數+在C語言 func函數在c語言中
- 04-02c語言的正則匹配函數 c語言正則表達
- 04-02c語言用函數寫分段 用c語言表示分段
- 04-02c語言中對數函數的表達式 c語言中對
- 04-02c語言編寫函數冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數 round c語言
- 04-02c語言分段函數怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數 c語言中怎
- 04-02c語言調用函數求fibo C語言調用函數求
隨機閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 01-11ajax實現頁面的局部加載
- 04-02jquery與jsp,用jquery
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05dedecms(織夢)副欄目數量限制代碼修改
- 01-10C#中split用法實例總結
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文