Проблема 1 - Определение размера массива
этот массив из 50 символов будет размером 50
или 51 (для учета нуля
терминатор)
Вы всегда хотите, чтобы массив был больше, чем нужно хранить в нем (чтобы учесть нулевой терминатор). Таким образом, ваши 50 символов должны храниться в массиве размером 51.
Что я здесь не так делаю?
Попробуйте обнулить входную строку в atoi. Документация гласит, что atoi должен быть задан указатель на строку, который отличается от не завершенного одиночного символа. Ваши результаты с текущим кодом, который вы опубликовали, отличаются на разных платформах (я получаю -1 на unbuntu / gcc)
char fiftyNumbersOne[51] = "37107287533902102798797998220837590246510135740250";
int one = 0;
char aChar = fiftyNumbersOne[48];
char intChar[2];
printf("%c\n",aChar);//outputs 5 (second to last #)
sprintf(intChar, "%c", aChar); //print the char to a null terminated string
one = atoi(&intChar);
printf("%d\n",one);//outputs what appears to be INT_MAX...I want 5