Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1577 connectés 

  FORUM HardWare.fr
  Programmation
  C

  passage d'un tableau dans une fonction

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

passage d'un tableau dans une fonction

n°1720019
benjolebar​bar
Posté le 18-04-2008 à 17:20:53  profilanswer
 

voila mon problème : je fais un programme des plus basiques avec une tableau à deux dimensions et je voudrais y calculer quelquechose mais dans une fonction sauf que au moment de compiler on me dit : erreur : la valeur indicée n'est ni un tableau ni un pointeur.
 
alors voila mon programme :

Code :
  1. #include<stdio.h>
  2. void affiche(int tableau[3][2])
  3. {
  4. int i,j;
  5. for(j=0;j<2;j++)
  6. {
  7.  for(i=0;i<3;i++)
  8.  {
  9.   printf("%i \t",tableau[i][j]);
  10.  }
  11.  printf("\n" );
  12. }
  13. }
  14. void calcule(int *p)
  15. {
  16. *p[0][0]=0;
  17. }
  18. int main (void)
  19. {
  20. int tableau[3][2]={{1,90},{3,4},{5,6}};
  21. affiche(tableau);
  22. calcul(tableau);
  23. affiche(tableau);
  24. }

mood
Publicité
Posté le 18-04-2008 à 17:20:53  profilanswer
 

n°1720119
Joel F
Real men use unique_ptr
Posté le 18-04-2008 à 20:54:34  profilanswer
 

et ca serait cool de nous dire pr quelle ligne :o

n°1720123
tpierron
Posté le 18-04-2008 à 21:13:10  profilanswer
 

Bah, au hasard, je dirais la ligne 19. Bon, ta fonction calcule est foireuse, ce qui est étrange car ta fonction affiche() est correcte. Pourquoi ne pas t'être calqué sur celle-ci pour écrire calcule() ?

n°1720196
olivthill
Posté le 19-04-2008 à 10:47:22  profilanswer
 

Tout à ait d'accord avec l'intervenant précédent, il aurait préférable de calquer calcul sur affiche.
 
Sinon, je crois qu'au lieu de

*p[0][0]=0;

il suffirait d'avoir

p[0][0]=0;



Message édité par olivthill le 19-04-2008 à 21:24:15
n°1720200
jesus_chri​st
votre nouveau dieu
Posté le 19-04-2008 à 11:17:39  profilanswer
 

non :
 

p[ 0 + 2 * 0 ] = 0;


 
pour acceder à la case (i,j) depuis un int*, c'est

p[ i + 2 * j ];

n°1720201
jesus_chri​st
votre nouveau dieu
Posté le 19-04-2008 à 11:20:21  profilanswer
 

précision : ici le 2 vient du type int[3][2]
en règle générale, mieux vaut passer un tableau en paramètre plutôt qu'un int*, histoire que ce soit + clair et que ce soit le compilo qui fasse les calculs d'indice. Et évite de passer la première dimention, elle ne sert à rien.
 

void affiche(int tableau[][2])
{
   ...
}

n°1720240
Trap D
Posté le 19-04-2008 à 13:50:15  profilanswer
 

Un compilo bien réglé devrait râler ici

Code :
  1. void calcule(int *p)
  2. {
  3. *p[0][0]=0;
  4. }

comme déjà signalé  
et là

Code :
  1. int tableau[3][2]={{1,90},{3,4},{5,6}};
  2. affiche(tableau);
  3. calcul(tableau);   <===

car le prototype de calcul est
void calcule(int *p)


Message édité par Trap D le 19-04-2008 à 13:53:29
n°1720778
benjolebar​bar
Posté le 21-04-2008 à 10:20:53  profilanswer
 

bon vous pourriez pas etre plus clair parce que c'est pas que je comprend rien mais bon ..... je suis débutant aussi !!! vous pourriez pas me mettre ce que je dois écrire explicitement ?????


Message édité par benjolebarbar le 21-04-2008 à 10:21:26
n°1720780
gilou
Modérateur
Modzilla
Posté le 21-04-2008 à 10:23:01  profilanswer
 

Le forum n'est pas la pour resoudre les exercices a la place de celui qui doit les faire, mais pour expliquer ce qui ne va pas. Voir le reglement du forum a ce sujet.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°1720900
benjolebar​bar
Posté le 21-04-2008 à 11:54:04  profilanswer
 

non mais oh t'es fou ou quoi ? je dois faire un démineur et j'ai un probleme pour faire une fonction. j'ai pas bien capté ce qu'on ecrit les autres!! j'ai parler d'un démineur ?? j'ai pas demandé de me faire le programme du demineur non ??? non alors arrete d'agresser les gens espece d'abruti tu connait pas ma vie !!!!!!!!!  
A+

mood
Publicité
Posté le 21-04-2008 à 11:54:04  profilanswer
 

n°1720945
Trap D
Posté le 21-04-2008 à 13:04:13  profilanswer
 

benjolebarbar a écrit :

non mais oh t'es fou ou quoi ? je dois faire un démineur et j'ai un probleme pour faire une fonction. j'ai pas bien capté ce qu'on ecrit les autres!! j'ai parler d'un démineur ?? j'ai pas demandé de me faire le programme du demineur non ??? non alors arrete d'agresser les gens espece d'abruti tu connait pas ma vie !!!!!!!!!  
A+

Bon ben je crois qu'il n'y a plus rien à ajouter !  

n°1721167
delphin2
Soyons libre de droit
Posté le 21-04-2008 à 16:57:33  profilanswer
 

# void calcule(int *p)
# {
# *p[0][0]=0;
Il faut que tu passes un tableau en paramètre comme a dit trap d

n°1721173
Elmoricq
Modérateur
Posté le 21-04-2008 à 17:15:40  profilanswer
 

benjolebarbar a écrit :

non mais oh t'es fou ou quoi ? je dois faire un démineur et j'ai un probleme pour faire une fonction. j'ai pas bien capté ce qu'on ecrit les autres!! j'ai parler d'un démineur ?? j'ai pas demandé de me faire le programme du demineur non ??? non alors arrete d'agresser les gens espece d'abruti tu connait pas ma vie !!!!!!!!!  
A+


 
A+ [:elmott]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  passage d'un tableau dans une fonction

 

Sujets relatifs
Fonction aide.Utiliser une fonction du shell dans un programme C
[XML/XSL] - Récupérer une valeur d'un tableau excel[PHP] pbm fonction "public static"
Cellules fusionnées dans un tableau de document Wordpassage de l'intérieur d'un tableau par référence dans une fonction ?
passage de tableau dans une fonction (débutant)[c][Resolu]Passage d'un tableau à une fonction
passage d'un tableau php parametre à une fonction javascriptPassage de tableau à une fonction
Plus de sujets relatifs à : passage d'un tableau dans une fonction


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR