Reading chars and storing into an array (!)

I would think you'd want to start by placing the first item at 'dtmf[0]' and not 'dtmf[1]'

Try ...

dtmf[i++]= mapKey();