[C言語] 07 数字の文字列をuint64_tに変換する

すぐに忘れそうなのでメモ書きしておきます。

第2引数&endの意味がよく分かりません。適当なポインタを入れておけば良いのでしょうか。

IBMやMicrosoftの資料によると、文字列の読み取りを停止した文字(ヌル文字など)へのポインタを&endに格納するとのことです。読み取り不可の場合は文字列をそこに格納します。char* end = NULLでも問題ないみたいです。

#include <stdlib>

uint64_t numA;
uint64_t numB;
char* end;

<中略>

// sscanfで文字列として読み込んだnumAを16進数のuint64_tへ変換する
numB = strtoull(numA,&end,16);