だから次の、だってば
./a.out -abc -dなら
最初 optind=1 argv[1]=-abc
a処理後 optind=1 argv[1]=-abc
b処理後 optind=1 argv[1]=-abc
c処理後 optind=2 argv[2]=-d
d処理後 optind=3 argv[3]=NULL
になるんじゃね?試してねーけど