[英]Array size trouble on ARM Cortex M4
我正在基於ARM Cortex M4的Texas Instruments Tiva C系列LaunchPad(TM4C123G)上進行一些C編程。
我的數組似乎比它們應該的小。 此示例應說明問題:
uint8_t* data;
static uint8_t d1[32];
for (int i = 0; i < 32; i++)
{
d1[i] = i+65;
}
data = d1;
數據內容應為
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
但相反
ABCDEFGHIJKLMNOPQRSTUVWX plus 8 non-printable characters
如果我這樣定義d1
static uint8_t d1[35];
數組中從“ A”到“`”的所有32個字節均可用。
對我來說,數組似乎比實際的要短是很奇怪的。 我想知道這是怎么發生的以及如何解決該問題。
提前致謝 :-)
數組的長度為32,並為它的每個元素分配一個值。
因此,如果您遍歷數組並單獨打印每個字符,那么一切都很好。
如果使用printf("%s\\n")
打印整個數組,則將數組視為指向字符串開頭的指針。 並且必須以\\0
終止。 否則, printf
將繼續打印,直到從起始地址開始向上找到\\0
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.