Quindi, per ricapitolare, tu vorresti

1) allocare un array
2) riempirlo con dei dati
3) restituire il puntatore a questi dati
4) non permettere a chi riceve il puntatore di modificare i dati

e questo non è possibile senza fare una copia dei dati stessi ...