On ne renvoie jamais une donnée locale, c'est écrasé en sortant de la fonction. Il faut faire une alloc et retourner le pointeur.
Ceci dit, comme dit plus haut, le mieux est de recevoir le pointeur tableau et de le faire remplir par la fonction, encore faut-il recevoir aussi le nbr d'éléments à remplir.