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

  FORUM HardWare.fr
  Programmation
  C

  Langage C : passage d'un tableau à une fonction

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Langage C : passage d'un tableau à une fonction

n°1988430
rahela
Posté le 28-04-2010 à 14:54:13  profilanswer
 

Bonjour tout le monde !  
 
petit soucis! Je déclare un tableau de la manière suivante :  

Code :
  1. int image[10][10] ;


 
j'ai une fonction banale qui prend un tableau en argument :  

Code :
  1. void fonction_banale(int **tableau);


 
Lorsque je l'applique dans main :  
 

Code :
  1. fonction_banale(image)


 
J'ai le warning suivant : passing arg1 of 'fonction_banale ' from incompatible pointer type.
Comment cela se fait-il?  
 
Merci d'avance

mood
Publicité
Posté le 28-04-2010 à 14:54:13  profilanswer
 

n°1988433
olivthill
Posté le 28-04-2010 à 15:00:14  profilanswer
 

int image[10][10] n'est pas une déclaration pour un vrai tableau à deux dimensions, mais pour un tableau à une seule dimension contenant 10 x 10 entiers.
 
int **tableau est une déclaration pour un pointeur sur un tableau de pointeurs sur des entiers.
 
Donc, c'est différent.
 
Le remède le plus simple est de déclarer sa fonction par :

void fonction_banale(int tableau[10][10]);


 
Il existe d'autres solutions, mais qui sont plus compliquées.


Message édité par olivthill le 28-04-2010 à 15:02:34
n°1988550
rahela
Posté le 28-04-2010 à 22:49:16  profilanswer
 

oki ca marche comme ca! cependant on a fixé ici la taille... si je ne suis pas censée savoir quelles seront ses dimensions je fais comment? je fais des variables globales Hauteur et Longueur?

n°1988555
rahela
Posté le 28-04-2010 à 23:06:51  profilanswer
 


J'ai trouvé en fait, je mets quand même mon bout de code ca peut servir:

Code :
  1. int ** allocate_image(int hauteur, int longueur){
  2. int i, j;
  3. int ** image= malloc(hauteur*sizeof(int *));
  4. for(i=0;i<hauteur;++i){
  5.  image[i]=malloc(longueur*sizeof(int));
  6.  for(j=0;j<longueur;++j){
  7.   image[i][j]=0;
  8.  }
  9. }
  10. return image;
  11. }
  12. void free_image(int hauteur, int **image){
  13. int i;
  14. for(i=0;i<hauteur;++i){
  15.  free(image[i]);
  16. }
  17. free(image);
  18. }
  19. void fonction_banale(int **tableau){
  20. ....
  21. }
  22. int main(void){
  23. int ** image = allocate_image(10,10);
  24. fonction_banale(image); //fonctionne très bien !
  25. free(10,image);


 
voila! peut être y a-t-il plus simple?
En tout cas merci à toi d'avoir pris le temps de me répondre
 
Bonne soirée
 


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

  Langage C : passage d'un tableau à une fonction

 

Sujets relatifs
[javascript]Appeler une fonction dans un iframeRafraichir un GROUPBOX (C++, Win32)
flash/php passage de variablesbibliothèque langage C
vecteur de bits en language C !!!!Images en fonction d'un numéro
Fonction Partager de FacebookAide pour un programme en C/C++ (compression en rar)
Plus de sujets relatifs à : Langage C : passage d'un tableau à une fonction


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