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を使用するのは正しいことではないと考えましたが、整数のサイズがわかっているので役に立たないと思います。それでも、ここでのベストプラクティスは何かを知りたいです。