arrays multidimensionais e transferência de buffers

Eu estou tentando salvar um buffer em segmentos de matriz de 1800 caracteres. Sempre que posso transferir o buffer, mas quando tento imprimir cada novo buffer. Eu recebo null pela saída. O que exatamente estou fazendo errado?

EDIT - Eu mudei o loop para isso para adicionar terminações nulas ao final da segunda dimensão. agora a saída me diz que é nulo. Masprintf("%c") diz que os dados foram transferidos.

<code>while(buf_pos < msg_size+1){
    if(buf_pos % 1800 == 0){
        msg_buff[key_num][cbuf_pos]='\0';
        key_num++;
        cbuf_pos=0;
        msg_buff[key_num][cbuf_pos]=buf[buf_pos];
    }else
        msg_buff[key_num][cbuf_pos]=buf[buf_pos];

    printf("%c",msg_buff[key_num][cbuf_pos]);
    cbuf_pos++;
    buf_pos++;
}
</code>

questionAnswers(2)

yourAnswerToTheQuestion