2017-02-17 13 views
-3

メモリ割り当てに頼らずにsprintfを使用する方法はありますか?私は組み込みシステムで作業しており、ヒープを導入したくありません。私のアプリケーションで次のコードは、sprintfのが内部ヒープを使用している_sbrkメモリ割り当てのないsprintf

char numBuffer[10]; 

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

'numBuffer'に自動保存期間がある場合、割り当てられたストレージは必要ありません。 – EOF

+0

また、割り当てられたストレージを必要としません。それでもまだ_sbrkを定義するように依頼しています – rulestein

+1

'snprintf()'はあなたの友人です。 (または 'asprintf()') – wildplasser

答えて

2

定義するために私を必要としています。だからあなたの最善の策は、そうでないバージョンを書くことです。 %d、%x、%sの書式指定子を使用するだけであれば、動的メモリは必要ありません。

+0

このようなことを行う実装を指摘できますか? –