J'ai besoin de créer un tableau d'entiers de 2000 lignes et 300 colonnes. Dois-je le créer par:
int tableau[300] [2000];
ou
int tableau[2000] [300];
Un débutant agacé
J'ai besoin de créer un tableau d'entiers de 2000 lignes et 300 colonnes. Dois-je le créer par:
int tableau[300] [2000];
ou
int tableau[2000] [300];
Un débutant agacé
Bien le bonjour,
la notion de ligne ou colonne n'est utile que pour le programmeur. Pour le programme il n'y a que des adresses.
si tu veux que ton premier indice corresponde à un numéro de ligne, alors int tableau[2000] [300] sinon int tableau[300] [2000]
ça influera dans tes parcours du tableau. si tu as un indice qui déborde, tu obtiendras une erreur.
pourquoi ne pas faire un tableau de 2000 vecteur a 300 coordonnees.
typedef quelquechose vecteur[300]
typedef vecteur tableau[2000]
Ma question si basique a première vue a été motivée par le fait que je n'arrive pas a afficher correctement la colonne 0 des 2000 lignes lorsque j'utilise le code suivant :
int ligne;
ligne = 0;
while (ligne<2000)
{ printf("%d ",tableau[ligne] [0]);
printf("\n");
ligne = ligne + 1;}
Seules les 300 dernières sont affichées
Le tableau a été défini comme suit:
int tableau[2000] [300];
... et comme par hasard, 300 est censé être le nombre de colonnes...
Donne un code complet et minimal reproduisant le probleme.
Tu affiches sur un terminal, 300 ne serait pas la taille en ligne du buffer du terminal?
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
Le programme s'éxécute sur un PC.
Effectivement je commence à suspecter un problème de taille de buffer car lorsque je lance le code suivant qui ne fait pas référence au tableau:
int ligne;
ligne = 0;
while (ligne<2000)
{ printf("%d ",ligne);
printf("\n");
ligne = ligne + 1;}
seules les valeurs de 1701 à 1999 s'affichent soit 299 valeurs.
Que faire ?
Si tu fais ça sous Windows 2000 ou XP, sache qu'une console Windows possède en effet un buffer de 300 lignes.
Tu peux toujours voir ce que ça donne en redirigeant la sortie vers un fichier texte...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
J'ignorais la limitation à 300 lignes d'une console Windows,
le problème ne venait pas du tableau, dont une dimension était justement 300, mais du buffer.
Merci à tous
Au fait: c'est réglable, dans les propriétés de la console.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager