C 標準ライブラリ ルーチンのプロトタイプは次のstrtol
とおりです。
long int strtol(const char* str, char** endptr, int base);
典型的な使用法:
const char* str = "123a";
char* endptr;
long int value = strtol(str, &endptr, 10);
if (*endptr)
// Do something
else
// Do something else
なぜこのように行われるのですか?ローカル変数のアドレスを渡さないのはなぜですか?
例:
long int strtol(const char* str, char* endptr, int base);
使用法:
const char* str = "123a";
char end;
long int value = strtol(str, &end, 10);
if (end)
// Do something
else
// Do something else
この設計上の決定には論理的な理由があると確信していますが、よくわかりません。