из int argc, функция sint перестает работать? Если я не трогаю int argc то всё работает нормально, что не так ?
// SINT - StringInteger, sum of all chars converted to int
int sint(const char * str) {
unsigned len = strlen(str);
printf("str_len: %u\n", strlen(str));
int sint = 0;
for (unsigned idx; idx < len; idx++)
sint += str[idx];
return sint;
}
int main(int argc, char * argv[]) {
// printf("%i\n", argc);
int argid = sint(argv[1]);
SLINE("UXCTL");
// printf("%i ? %s\n", sint(argv[1]), argv[1]);
SRES("arg2int", argid);
switch (argid) {
case 515:
char str_dat[ASIZE];
rd_file("assets/help.dat", str_dat);
printf("%s\n", str_dat);
break;
default:
puts("Unkown argument !");
break;
}
return 0;
}
Вот ещё макросы. #define ASIZE 500 #define SLINE(title) printf("\n---[ %s ]---\n", title) #define SRES(name, result) printf("%s: %i\n", name, result)
как минимум ты не проверяешь argc, поэтому без параметров ты будешь обращаться к нулевому указателю. В целом это Си, для которого есть отдельная группа, плюс ты задаёшь вопрос судя по всему даже не пройдясь отладчиком. На что ты расчитываешь при таком подходе я не знаю.
Даже если аргумент есть, for просто на стартует хотя условие логично.
можно ссылку на чат по СИ?
Мощный, универсальный, твой. @lame_c
Обсуждают сегодня