Value stored in mid also correct. Check left and right expression of the if condition.
(gdb) print argv[1][i] $3 = 109 'm' (gdb) print argv[1][length-i] $4 = 0 '\0' (gdb)
(gdb) print argv[1][i]
$3 = 109 'm'
(gdb) print argv[1][length-i]
$4 = 0 '\0'
(gdb)