main() doit renvoyer un int.
Et, comme main() est censée renvoyer un int, on ajoute
return 0;
à la fin de main()pour signaler à l'OS qu'il n'y a pas de problème. Ou alors
return EXIT_SUCCESS;
qui a la même sémantique (et la même portabilité), mais qui a le mérite d'être plus explicite pour le relecteur (il faut un incldue standard, stdlib.h, je crois).
Il faut régler son compilateur pour être sûr qu'on fait du vrai C. Avec gcc:
gcc -Wall -Wextra -std=c99
est un bon début (ou remplace c99 par c90 ou ce que tu veux, suivant tes besoins). L'option -pedantic est aussi très utile, car rajoute tous les warnings que la norme définit. Voir la doc de gcc pour plus d'infos.
Sinon, passer l'adresse de ton Tab plutôt que Tab est inutile (passer Tab revient à donner un pointeur vers le premier élément de ton tableau, quelles que soient ses dimensions). Mais, si on sait ce qu'on fait (on passe un pointeur vers un tableau, et non un pointeur vers un élément de tableau), alors il n'y a pas de problème ;)
PS:
There are 2 rules of precedence. Multiply before you add and use parentheses everywhere else.
PPS: POSIX spécifie en plus que EXIT_SUCCESS vaut 0, mais en-dehors de POSIX la valeur de la macro peut être quelconque (mais différente de EXIT_FAILURE, évidemment).
# Ca ne compile pas chez moi (tm)
Posté par alf . En réponse au message Segmentation fault!. Évalué à 1.
Et, comme main() est censée renvoyer un int, on ajouteà la fin de main()pour signaler à l'OS qu'il n'y a pas de problème. Ou alors qui a la même sémantique (et la même portabilité), mais qui a le mérite d'être plus explicite pour le relecteur (il faut un incldue standard, stdlib.h, je crois).
Il faut régler son compilateur pour être sûr qu'on fait du vrai C. Avec gcc:est un bon début (ou remplace c99 par c90 ou ce que tu veux, suivant tes besoins). L'option -pedantic est aussi très utile, car rajoute tous les warnings que la norme définit. Voir la doc de gcc pour plus d'infos.
Sinon, passer l'adresse de ton Tab plutôt que Tab est inutile (passer Tab revient à donner un pointeur vers le premier élément de ton tableau, quelles que soient ses dimensions). Mais, si on sait ce qu'on fait (on passe un pointeur vers un tableau, et non un pointeur vers un élément de tableau), alors il n'y a pas de problème ;)
PS:
PPS: POSIX spécifie en plus que EXIT_SUCCESS vaut 0, mais en-dehors de POSIX la valeur de la macro peut être quelconque (mais différente de EXIT_FAILURE, évidemment).