2017-02-17 60 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

你能指出一个实现这样的事情吗? –