C sizeof與strlen的區別

記錄

用memcoy對數組進行賦值時,使用關鍵字sizeof()獲取數據長度,導致hardfault內存溢出,修改爲strlen解決。
[頭文件:#include<string.h>,函數原型:void memcpy(voiddest, const void *src, size_t n)]

sizeof與strlen的差別

char str[20] = "0123456789"; 
int a = strlen(str); /* a = 10;strlen 計算字符串的長度,以\0'爲字符串結束標記 */
int b = sizeof(str); /* b = 20;sizeof 計算的則是分配的數組str[20]所佔的內存空間的大小,不受裏面存儲的內容影響 */
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章