argv[1]とargv[1][0]ってどう違うのですか?
どちらも一つ目のオプションを指してると思うんですが
printf( "%p %p\n", argv[1], argv[1][0] );
で表示させると違う値になります