簡體   English   中英

ARM Cortex M4的陣列大小問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM