0

Anyone know why using strtoull will overlow an unsigned long long? The value of "x" is 12 when I make the call, so I'm trying to convert a 12 digit base 36 num to unsigned long long.

This should work right? It doesn't matter whether I compile 32 or 64bit. I'm using g++ on redhat.

buffer is a char*

char *strPtr = buffer + ORDERIDOFFSET;
char *endPtr = strPtr + ORDERIDLENGTH;
long x = long((endPtr)) - long(buffer + ORDERIDOFFSET);
unsigned long long orderid = strtoull((buffer + ORDERIDOFFSET), &(endPtr), 36);

Thanks!

4

2 に答える 2