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

  FORUM HardWare.fr
  Programmation
  C

  Comment supprimer un "warning" lié au mot-clef "const"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment supprimer un "warning" lié au mot-clef "const"

n°2005619
slvn
Posté le 29-06-2010 à 11:46:38  profilanswer
 

Bonjour,
 
Comment supprimer ce message d'erreur lié à l'utilisation d'une variable "non-const" par une fonction prenant un paramètre "const".
La version de gcc utilisée est 4.1.2.
 
Merci,
 

Code :
  1. void
  2. fonction
  3. (
  4.    const char tab[3][3]
  5. )
  6. {
  7.    char c ;
  8.    c = tab[0][0];
  9. }
  10. int
  11. main
  12. (
  13.    int   argc,
  14.    char *argv[]
  15. )
  16. {
  17.    char tab[3][3] ;
  18.    fonction( tab ) ;
  19.    return 0 ;
  20. }


 
 


test.c: In function 'main':
test.c:21: attention : passing argument 1 of 'fonction' from incompatible pointer type


Message édité par slvn le 29-06-2010 à 11:47:22
mood
Publicité
Posté le 29-06-2010 à 11:46:38  profilanswer
 

n°2005789
ZePRiNCE
Coucou, tu veux voir ma RTX ?
Posté le 29-06-2010 à 15:34:57  profilanswer
 
n°2006247
slvn
Posté le 01-07-2010 à 10:47:14  profilanswer
 

Bonjour,
 
Non ce n'est pas possible.  
Il faut garder "gcc", ainsi que les options qui affichent les warnings "-Wall".


Message édité par slvn le 01-07-2010 à 14:58:50
n°2006279
Un Program​meur
Posté le 01-07-2010 à 11:51:50  profilanswer
 

La fonction demande un pointeur vers un tableau de 3 char constant, tu lui passe un pointeur vers un tableau de 3 char, ce n'est possiblie ni en C ni en C++.
 
On ne peut ajouter des const que pour des pointeurs, pas des tableaux ou les membres des structs (les regles sont differentes en C et en C++, plus permissives en C++ qu'en C).


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°2007343
slvn
Posté le 06-07-2010 à 11:45:27  profilanswer
 

Bonjour,
 
Pourtant un tableau est en quelque sorte un pointeur...
 
Si au lieu d'utiliser une double dimension, on utilise une simple dimension.
 
C'est à dire, passer un :

Code :
  1. char tab[3];

A une fonction qui accepte un "const" :

Code :
  1. void fonction(const char tab[3]);

Alors, cela ne produit pas d'erreur.
 
Un tableau en simple dimension ne pose pas de problème.
 
Ce qui sembler causer le message "warning", c'est la double dimension du tableau.


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

  Comment supprimer un "warning" lié au mot-clef "const"

 

Sujets relatifs
(résolu... trop con) CHAINES supprimer xxx entre 'A' et 'B' ???Comment supprimer un bouton sur userfom avec du code VBA ?
requêtes modifier et supprimer ??Warning: mysqli_escape_string()
Supprimer un élément XML en ayant son IDSupprimer une "colone" dans un tableau
supprimer caractère dans nom de fichier[Flash + AS] supprimer des duplicateMovieClip
[batch] Supprimer un fichier par rapport à la dateVba supprimer plusieurs lignes if then end if
Plus de sujets relatifs à : Comment supprimer un "warning" lié au mot-clef "const"


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