Чтобы переименовать аргументы в main, я делаю следующее:
int main(int argc, char *argv[]) {
char * strings[argc];
for(int i=0; i<argc; i++) strings[i]=argv[i];
}
Из любопытства, почему бы не сработать что-то вроде следующего:
int main(int argc, char *argv[]) {
char * strings[argc] = argv;
}