Pourquoi le programme suivant donne-t-il un avertissement?Pourquoi le programme suivant génère-t-il une erreur?
Remarque: Il est évident que l'envoi d'un pointeur normal à une fonction nécessitant un pointeur const ne donne aucun avertissement.
#include <stdio.h>
void sam(const char **p) { }
int main(int argc, char **argv)
{
sam(argv);
return 0;
}
je reçois l'erreur suivante,
In function `int main(int, char **)':
passing `char **' as argument 1 of `sam(const char **)'
adds cv-quals without intervening `const'
Est-ce que votre compilateur signale une erreur ou un avertissement? (et, si cela ne fait que rapporter un avertissement, quel compilateur utilisez-vous? Il vaut mieux signaler une erreur) –
@James: Mon compilateur [gcc version 2.95.3] renvoie une erreur. Éditera la question tout de suite. Merci pour la notification. – joshu
@Prabhu: Ah, d'accord. J'avais d'abord pensé qu'il pourrait être une ancienne version de Visual C++ (_pas que je pense que Visual C++ manque de conformité aux normes ... pas du tout ... non ... _). –