2017-02-17 34 views
-3

是否有使用sprintf不依賴於內存分配的方法嗎?我正在使用嵌入式系統,不想引入堆。我的應用程序中的以下代碼要求我定義_sbrk的sprintf沒有內存分配

char numBuffer[10]; 

sprintf(numBuffer, "%04x", value); 
+0

如果'numBuffer'具有自動存儲時間,你*不*需要分配的存儲空間。 – EOF

+0

我也不想分配存儲空間。但它仍然要求我定義_sbrk – rulestein

+1

'snprintf()'是你的朋友。 (或'asprintf()') – wildplasser

回答

2

sprintf在內部使用堆。所以你最好的選擇是寫一個沒有的版本。如果您只使用%d,%x和%s格式說明符,則不需要任何動態內存。

+0

你能指出一個實現這樣的事情嗎? –