Tableau à 2 dimensions en C

Résolu
Klownerz Messages postés 1 Date d'inscription jeudi 14 mai 2015 Statut Membre Dernière intervention 29 juillet 2019 - 29 juil. 2019 à 18:40
Dalfab Messages postés 704 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 19 mai 2023 - 31 juil. 2019 à 17:26
Bonjour,
J'ai un problème très curieux que je n'arrive pas à résoudre ! Le code sera plus parlant, le voici :

#include <stdlib.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
            int maison[100][1];
            for(int i=0; i < 100; i++)
            {
                         maison[i][0]= i;
                         maison[i][1] = 0;
                         printf("%d",maison[i][1]); //Affiche 0000000000.......00
             }

             for(int i=0; i <100;i++)
             {
                           printf("%d",maison[i][1]); //Affiche 123456789.......990
              }

              return 0;
}


Il doit sans doute y avoir une explication simple mais je la vois pas.
Le tableau maison[i][0] affiche lui : 0123456789...9899

Merci pour votre aide !

2 réponses

NHenry Messages postés 15069 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 29 mai 2023 158
29 juil. 2019 à 21:04
int maison[100][1]
Il n'y a qu'un seul élément, donc seulement
maison[x][0]

maison[x][1]
n'existe pas
1
La voilà l'explication simple l'indexation commence à 1 haha !
Merci beaucoup NHenry :)
0
Dalfab Messages postés 704 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 19 mai 2023 11
31 juil. 2019 à 17:26
L'indexation commence à 0, mais s'arrête à la taille - 1 donc ici un unique index possible à 0.
0