Path: ...!2.eu.feeder.erje.net!feeder.erje.net!fdn.fr!usenet-fr.net!.POSTED!not-for-mail From: Olivier Miakinen Newsgroups: fr.comp.sys.mac.programmation,fr.comp.lang.c Subject: =?UTF-8?Q?Re:_Pr=c3=a9cision_sur_le_C?= Followup-To: fr.comp.lang.c Date: Sun, 12 Jan 2025 22:26:26 +0100 Organization: There's no cabale Lines: 64 Message-ID: References: NNTP-Posting-Host: 200.89.28.93.rev.sfr.net Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit X-Trace: cabale.usenet-fr.net 1736717186 9620 93.28.89.200 (12 Jan 2025 21:26:26 GMT) X-Complaints-To: abuse@usenet-fr.net NNTP-Posting-Date: Sun, 12 Jan 2025 21:26:26 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4 Cancel-Lock: sha256:RBJ8ZsgqBnW/tYT/qu1JcXK8SA2O9g+qJLDzRY5h1cg= Cancel-Key: sha256:f0rHwfZXp5iKFjTbX/I5bQXh9Dta33nWBzLi8f9oaoM= In-Reply-To: Bytes: 2871 [diapublication, suivi vers fr.comp.lang.c] Le 09/01/2025 19:34, kurtz le pirate a écrit : > > J'ai cette fonction (trouvée sur le net) : > > int find_empty(int board[SIZE][SIZE], int *row, int *col) { > > for (*row = 0; *row < SIZE; (*row)++) { > for (*col = 0; *col < SIZE; (*col)++) { > if (board[*row][*col] == 0) { > return 1; > } > } > } > > return 0; > } > > Je ne suis pas sûr de bien comprendre les '*' devant les variables et > paramètres. Je t'ai déjà répondu sur fr.comp.sys.mac.programmation, et dit que pour la lisibilité j'aurais tendance à écrire *prow et *pcol à la place de *row et *col, pour bien rappeler que prow et pcol sont des pointeurs sur entiers plutôt que des entiers. > Pour les paramètres, on passe un pointeur sur les variables row et col > connues en dehors de cette fonction. > > > Mais, dans les boucles 'for', on utilise encore les pointeurs *row et > *col. Ca veut dire que les variables en dehors de cette fonction sont > incrémentées dans les boucles ? Pour encore plus de lisibilité, il aurait même été possible d'écrire la fonction comme ceci : int find_empty(int board[SIZE][SIZE], int *prow, int *pcol) { int row, col; for (row = 0; row < SIZE; row++) { for (col = 0; col < SIZE; col++) { if (board[row][col] == 0) { *prow = row; *pcol = col; return 1; } } } // Si on veut une compatibilité complète avec la fonction donnée // en exemple, ajouter soit : // *prow = row; *pcol = col; // soit : // *prow = *pcol = SIZE; // Cela dit, on s'en fiche probablement. return 0; } -- Olivier Miakinen