Char no se está convirtiendo a int
Por alguna razón, mi programa C se niega a convertir elementos de argv en ints, y no puedo entender por qué.
int main(int argc, char *argv[])
{
fprintf(stdout, "%s\n", argv[1]);
//Make conversions to int
int bufferquesize = (int)argv[1] - '0';
fprintf(stdout, "%d\n", bufferquesize);
}
Y esta es la salida cuando se ejecuta ./test 50:
50
-1076276207
He intentado eliminar (int), arrojando a * y an & between (int) y argv [1]: el primero me dio un 5 pero no un 50, pero el segundo me dio una salida similar a la anterior. Eliminar la operación - '0' no ayuda mucho. También intenté hacer un char first = argv [1] y usar primero para la conversión, y esto curiosamente me dio un 17 independientemente de la entrada.
Estoy extremadamente confundido. ¿Que esta pasando