Tout nouveau pour C, je viens d'un arrière-plan Java.Fonction Prototypes avec tableaux en tant que paramètres
J'ai un problème où je ne peux pas compiler parce que le compilateur veut savoir à la compilation la taille de mon tableau. Par exemple, je veux imprimer mon tableau sur la console. Il ne me permettra pas de déclarer un prototype de fonction en tant que tel:
void printRoom(char[][], int, int); //not allowed
Que dois-je faire à la place? N'y a-t-il pas moyen de contourner cela? Les ressources en ligne que j'ai trouvées semblent indiquer que je DOIS connaître les dimensions si je veux utiliser un prototype de fonction. Il semble que cela nécessite également que l'en-tête de la fonction ait aussi la taille du tableau.
void printRoom(char room[][], int height, int width){ // not allowed, missing array bounds
Est-ce que une solution valable à ce problème juste de dire que le tableau est de taille 1000 * 1000 (la taille du tableau maximum que je peux attendre)? Cela me semble bâclé mais je suis à peu près sûr que cela fonctionnerait tant que je resterais dans les limites de ce que la taille du tableau est supposée être.
Je ne suis pas intéressé par pointeurs et malloc en ce moment.
Ah il le supporte (en C89). Cependant, il faut toujours que je déclare la taille dans la fonction. Je le saurais déjà pour que ça ne pose pas de problème, mais savez-vous d'une autre façon que je pourrais accomplir cela sans connaître la taille en passant dans une fonction? – frillybob
@frillybob Voir ma mise à jour. –
@frillybob Si vous ne connaissez pas les tailles du tableau, vous devez utiliser soit VLA, soit allouer dynamiquement un tableau de tableaux. –