С main это так не работает. Сигнатура main с аргументами командной строки выглядит так:
int main(int argc, char **argv) {
}
Что ни есть эквивалент вашего кода. В main передаётся указатель на массив строк, ваш же код предполагает, что все аргументы будут переданы через стек. Из-за этого ничего и не работает