Partage
  • Partager sur Facebook
  • Partager sur Twitter

ERREUR de variable non déclarées ??

Sujet résolu
    15 juin 2021 à 16:21:02

    #include <stdio.h>
    #include <stdlib.h>
    
    void initTableau(int CNWY[][V], int H, int V);
    void afficheTableau(int CNWY[][V], int H, int V);
    
    int main()
    {
    	int H, V;
    	printf("Saisir la largeur de la grille: \n");
    	scanf("%d", &H);
    	printf("Saisir la hauteur de la grille: \n");
    	scanf("%d", &V);
    	
    	int* CNWY = (int*)malloc(H*V*sizeof(int));
    	int* PROV = (int*)malloc(H*V*sizeof(int));
    	
    	initTableau(CNWY, H, V);
    	afficheTableau(CNWY, H, V);
    	
    	free(CNWY);
    	free(PROV);
    }
    
    void initTableau(int CNWY[][V], int H, int V)
    {
    	int i, j, x, y, n;
    	for(i=0;i<H;i++)
    	{
    		for(j=0;j<V;j++)
    		{
    			CNWY[i][j] = 0;
    		}
    	}
    	printf("Combien de cases vivantes souhaitez vous ajouter: \n");
    	scanf("%d", &n);
    	if(n<=0)
    		printf("Aucunes cases vivantes ajoutées\n");
    	else if(n>0)
    	{
    		for(i=1;i<=n;i++)
    		{
    			printf("Saisir les coordonnées des cases vivantes: \nx= \n");
    			scanf("%d", &x);
    			printf("y= \n");
    			scanf("%d", &y);
    			CNWY[x][y] = 1;
    		}
    		printf("Tableau bien initialisé\n");
    	}
    }
    
    
    
    
    void afficheTableau(int CNWY[][V], int H, int V)
    {
    	int i, j;
    	for(i=0;i<H;i++)
    	{
    		for(j=0;j<V;j++)
    		{
    			printf("%d", CNWY[i][j]);
    		}
    		printf("\n");
    	}
    }
    
    Bonjour, j'ai rencontré quelques problèmes de compilation sur un code d'initialisation d'un tableau pour un exercice sur l'« Automates de Conway »
    Etant débutant sur les malloc, je ne sais pas si c'en ai la source du problème ? Merci 

    -
    Edité par Sniffle18 15 juin 2021 à 16:24:04

    • Partager sur Facebook
    • Partager sur Twitter
      15 juin 2021 à 16:37:25

      Si tu veux utiliser ce prototype pour tes fonctions (avec une variable comme dimension de tableau), tu doit mettre la variable taille avant le tableau :

      void initTableau(int V, int CNWY[][V], int H);
      void afficheTableau(int V, int CNWY[][V], int H);


      Bien sur modifier le reste du code en conséquence. 

      -
      Edité par rouloude 15 juin 2021 à 16:38:05

      • Partager sur Facebook
      • Partager sur Twitter
        15 juin 2021 à 17:00:04

        Bonjour,

        Étant donné que le projet semble encore à un stade très précoce, je ne pourrais que conseiller de :

        • relire un cours sur les pointeurs, et la différence entre pointeur et tableau ;
        • recommencer la modélisation afin d'avoir une structure qui représente le monde, quelque chose comme :

          struct cell {
              ....
          };
          
          struct world {
              size_t width;
              size_t height;
          
              struct cell **world;
          };
          et développer toutes les primitives d'accès ;

        • écrire des fonctions qui ne font qu'une chose et une seule … on ne demande pas les infos sur un tableau dans la fonction d'initialisation du tableau, par exemple ;

        • Partager sur Facebook
        • Partager sur Twitter

        ERREUR de variable non déclarées ??

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown