Char não está convertendo para int
or algum motivo, meu programa C se recusa a converter elementos do argv em ints, e não consigo descobrir o porqu
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);
}
E esta é a saída ao executar ./test 50:
50
-1076276207
Eu tentei remover o (int), lançando a * e um & between (int) e argv [1] - o primeiro me deu um 5, mas não 50, mas o último me deu uma saída semelhante à acima. Remover a operação - '0' não ajuda muito. Eu também tentei fazer um char primeiro = argv [1] e usar primeiro para a conversão, e isso estranhamente me deu 17, independentemente da entrad
Estou extremamente confuso. O que está acontecendo