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