Tableau

Mike -  
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Comment renvoyer un tableau utilisé dans une fonction Cad sans utiliser les pointeurs

Configuration: Android / Chrome 94.0.4606.85
A voir également:

1 réponse

[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut Mike,

En principe tu ne peux pas.

Le C ne permet pas de renvoyer un type tableau avec un
return
, si c'est bien cela ta question.

Par contre, tu peux :
  • renvoyer un pointeur vers une zone mémoire allouée avec sur le tas avec malloc(), mais tu ne sembles pas vouloir de cette option
  • renvoyer une struct déclarée dans la fonction (une variable automatique sur la pile), et dont les données seront copiées pour la fonction appelante, comme quand tu renvoies un int, ou un autre type. La struct peut alors comporter un espace mémoire pour un type tableau avec des données dedans, et tout ceci sera copié avec le reste du contenu de la struct, le padding, etc. (en interne, ce sera l'équivalent d'un memcpy() qui sera fait)


La raison pour laquelle ce n'est pas possible "facilement" c'est que passer, par copie, une grande quantité de données que peut contenir un tableau n'est pas du tout optimisé, et, de plus, risque de heurter les limites de la pile.


Dal
0