Probleme types de variables - Debutant [C] - C - Programmation
Marsh Posté le 09-06-2008 à 17:09:56
un tableau n'est pas un pointeur
donc soit tu passe par des mallocs pr creer buffer soit tu corrige le prototype de show :
int show( char buffer[][1024] );
Je t'enjoins néanmoins à utiliser l'allocation dynamique. J'ai deja donné une reponse précise pr les tableaux 2D efficace dans un autre topic.
Marsh Posté le 09-06-2008 à 17:56:41
Ton show marche pas. Si ton char** est terminé par un NULL (comme argv l'est, ie argv[argc] == NULL), fais un for ( ; *buf; ++buf) puts(*buf);
Marsh Posté le 09-06-2008 à 17:00:29
Bonjour,
je debute en C et je dois faire un petit programme de tri. Pour l'instant, je stock les donnes en parametre dans un buffer,mais j'aimerai "renvoyer" ce buffer dans une autre fonction. Sauf qu'a la compilation, j'ai un message qui me dit qu'il y a incompatibilite entre les deux declarations de variables.
Pourant 'buf' est bien un char** non ?
Merci d'avance, voici mon code :
int show(char **buf) /*Je voudrai juste tester sir le buffer est bien "arrive" sur cette fonction*/
{
int i = 0;
for (;buf;i++)
printf("%s", buf[i]);
return(0);
}
int alloc(char **argv)
{
char buf[1024][1024];
int i, j;
for (i = 1; argv[i]; i++)
{
for (j = 0; argv[i][j]; j++)
{
if (argv[i][j] >= 97 && argv[i][j] <= 122) [i]/*Je met tous le texte en MAJ*/
buf[i][j] = argv[i][j] -= 32;
else
buf[i][j] = argv[i][j];
}
}
show(buf);
return (0);
}
int main(int argc, char **argv)
{
if (argc < 2)
{
printf("\n" );
exit(-1);
}
alloc(argv);
return (0);
}
Voici le message a la compile :
In function 'alloc': warning: passing argument 1 of 'show' from incompatible pointer type
Message édité par blobloblo le 09-06-2008 à 17:02:17