(Courriels de diversion: <syllogisme@poisser-fendues.com> <denommeront@degraisse-braquons.com> <denuderaient@cursives-baserai.com> <gargouillements@aviserait-mesestimee.com> <recachettes@usurperas-nabot.com> <affreter@nicherai-spolierais.com> <assignerions@sablier-surexcitant.com> <rassoyant@mobiliserai-espacerons.com> <croquee@dedommagees-boutonnerez.com> <decante@desertaient-grippent.com> )


Jean-Pierre Nicolin a écrit :
Le mercredi 25 octobre 2006 à 20:03 +0200, Jean-Michel a écrit :
Guillaume Betous a écrit :
J'ai une fonction qui demande un tableau (?) int **dists mais je
ne sais pas comment le remplir, donc je cherche des exemples.
int **dists est équivalent à int *dist[]

Oui et non...

Les deux concepts sont ici similaires mais différents.
Le concept de pointeur permet de pointer sur un item.
Le concept de tableau permet de pointer sur une table de machins.

En C, on peut assez souvent intervertir les deux concepts, toutefois, il n'est écrit nul part que cela pourrait être une bonne idée (d'intervertir).

En particulier, en C, il ne faut pas confondre:
+ un pointeur sur un pointeur (c'est ce que veux rigoureusement dire **)
+ un tableau de tableau (les arguments du main en C)
+ un tableau de pointeurs
+ un pointeur de tableaux
(...)
C'est un vieux débat. En fait tous ceux qui ont lu les versions
originales de "The C Programming Language" de Kernighan et Ritchie ou
(...)
Pour eux, les programmeurs "savent ce qu'ils font" et il y a nombre de
fonctions des "Software tools" qui acceptent en paramètre le truc le
plus basic qui soit : un pointeur sur un tableau d'octets .Rappelez vous
que le langage C a été primitivement conçu comme langage portable pour
remplacer des dizaines de milliers de lignes de code d'un système
d'exploitation écrit en assembleur
(...)

C est devenu le langage privilégié de développement
sur micro-ordinateur que des efforts ont été entrepris pour le rendre
plus conforme aux standards enseignés par les "Computer
scientists"
Oui, mais je cherchais simplement à répondre à la question, sans passer par les aspects choix du langage, et jugement de valeur sur telle ou telle manière de coder.

Le fait est que lorsque l'on a «int **dists», en C, on ne peut pas savoir instantanément à quelle typage (de haut niveau) cela correspond. De plus on trouve difficilement la doc avec un moteur de recherche. De plus, la documentation que l'on peut trouver, pour du C, est souvent soit de style vulgarisation, soit de style abscon.




-------------------------------------------------------------------- Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>