0
unsigned char mac[6];
memset(mac,'\0',sizeof(mac));
問題: 爲什麼我只得到5 \ 0000,而在一次顯示MAC記憶的內容? 但是所有的元素都是NULL。
我試圖與其他字符設置,如@或$等,將正好有6個字符,而不是5
是它cgdb一個錯誤?
unsigned char mac[6];
memset(mac,'\0',sizeof(mac));
問題: 爲什麼我只得到5 \ 0000,而在一次顯示MAC記憶的內容? 但是所有的元素都是NULL。
我試圖與其他字符設置,如@或$等,將正好有6個字符,而不是5
是它cgdb一個錯誤?
它看起來像你的調試器一半把它當作一個字符串,一半把它當作一個數組來處理。
你可以很清楚的看到,有六個數組元素,mac[0]
到mac[5]
。
,但由於mac
行已決定,它要輸出字符串,它的治療最後\0
爲空終止字符串表示。在C世界中,第一個如\0
將被視爲字符串的結尾。
至於它是否是一個錯誤,取決於調試器文檔的狀態。如果它聲明它會輸出C風格的字符串,那麼,是的,它似乎是一個錯誤。
如果它不是不是說的那樣,它可以作爲執行決定被註銷,或者在最壞的情況下可以被忽略。