我有一小段代码可以将整数转换为 c 中的字符串。该代码必须同时在 32 位和 64 位平台上工作。
我在循环中解析参数,所以我需要 malloc 来创建缓冲区
int tmp_integer = /*read as integer*/
char* tmp_string = malloc(20* sizeof(char)); /*enough room for the biggest integer*/
snprintf(tmp_string, 20,"%d",tmp_integer); /*can I avoid using 20 here*/
a[i - 1] = tmp_string; /*save the parsed argument for final usage*/
我的问题是:有什么方法可以让使用 snprintf 变得更好,或者我应该回退到 sprintf。
我认为使用 snprintf 不是正确的做法,因为最初我想防止缓冲区溢出,但由于整数的大小是已知的,我认为它是无用的。我仍然想知道这里的最佳做法是什么。