簡體   English   中英

從字符串中讀取大小后分配大小為'n'的緩沖區

[英]Allocate buffer of size 'n' after reading the size from a string

我正在研究USB通信。 在此,每次來自主機的數據大小都會變化。 為了避免來自主機的這種情況,它將在發送數據之前發送數據的大小,因此我需要分配主機發送的大小的緩沖區。

來自主機的數據為“ 5”,這是一個字符串,我需要分配大小為5的緩沖區。例如:rec_buff [5]。 從主機讀取大小后。

每當大小變化時,我該如何使用C代碼片段來完成此操作。 我不知道該怎么做。 我曾經在Java上工作,我是C的新手。

我需要在不使用動態內存分配的情況下執行此操作。

任何幫助將不勝感激。

我假設您不希望使用可變大小的塊分配內存,因為您不希望內存碎片。 然后,您要查找的是內存池(固定塊大小)或固定大小的數組(在.bss節中預先分配的一個)。

您可以查看Zephyr RTOS中用於內存池API的外觀,並檢查源代碼以了解實現細節。 還有關於實現自己的內存池的問題

該系統的一個重要方面是處理當輸入超出緩沖區中的最大可用空間時發生的情況。 例如,您可以實現某種狀態機並以塊為單位解析輸入,或者只是中止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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