c的关于数组初始化 和 memset用法
生活随笔
收集整理的這篇文章主要介紹了
c的关于数组初始化 和 memset用法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
今天為了徹底搞定一個關于c中數(shù)組初始化和聲明不同情況下,比如只聲明一個數(shù)組char str[20];那么這str里面是什么內(nèi)容呢?我用vc6++,debug下看到都是-56餓asc碼,后來請教了一個華為的大牛,他說 按照理論來說里面的內(nèi)容都是有可能的,這和叫做“臟內(nèi)存”或者叫做“野數(shù)組”。好了第一個問題搞懂了。
?
第二個問題 memset的問題,之前在萬臣解析fast協(xié)議的時候,因為是剛?cè)腴TC,薄荷老大給我說一般聲明了數(shù)組吼都用memset一下。當時不是很理解,但是現(xiàn)在這句話知道了。
舉例一下:
比如 char str[20];
對于str的連續(xù)20個單元都是隨意的值
char str[20] = "Hello World!";
這個時候?qū)τ趕tr,前面的字符是 Hello World 緊接著是'/0';也就是說str盡管后面沒用到的內(nèi)存單元也是0了,不是隨意值
?
如果 memset(str, 0, sizeof(str));
那么這句話也是把str的前sizeof(str)個單元都賦值給0
如果是memset(str, 1, 10)
那么這句話是把str的前10個單元都賦值給1了,其余的還是 隨意值
?
記錄一下!
與50位技術專家面對面20年技術見證,附贈技術全景圖總結(jié)
以上是生活随笔為你收集整理的c的关于数组初始化 和 memset用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 老生常谈,正确使用memset
- 下一篇: c语言’内存清除函数,c语言常用内存处理