begin process at 2012 05 30 18:01:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

tableau a 2 dimensions


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

tableau a 2 dimensions

vendredi 18 février 2005 à 00:16:05 | tableau a 2 dimensions

minet03

Bonjour, ceux qui ont eu l'occasion de me parler sur #Programmation vont surement me détester à jamais, mais voilà j'ai encore un problème avec ce tableau a 2 dimensions. Tout d'abord je l'initialise comme ça :
    char** cGrille;
    CreerGrille(cGrille, Ligne, Colonne);
avec :
void CreerGrille(char** cGrille, int Ligne, int Colonne)
{
    cGrille = (char**)malloc( Ligne * sizeof(char*) );
    for(int i=0;i<Ligne;i++)
        cGrille[i] = (char*)malloc( Colonne * sizeof(char) );
}

Et le truc c'est que j'ai d'autre fonction utilisant cGrille que j'utilise comme ci :
InitGrille(cGrille, Ligne, Colonne);
avec :
void InitGrille(char** cGrille, int Ligne, int Colonne)
{
    int i=0,j=0;
    for(i=0;i<Ligne;i++)
    {
        for(j=0;j<Colonne;j++)
        {
            cGrille[i][j]= '0';
        }
    }
}

Ca compile bien, mais y a une erreur du style erreur fatale de windows.
Donc je pense que ça viens du pointeur et de l'allocation de la mémoire. Seulement là je suis une fois de plus perdu !

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
vendredi 18 février 2005 à 00:39:35 | Re : tableau a 2 dimensions

mezaya

erreur classique de pointeur.

quand tu créer ta grille avec CreerGrille() tu passe ton parametre par copie. Dans la fonction il créer bien la grille mais a aucun momoent tu récupere ce que ta fonction a fait. tu a pour cela 3 méthode :
    - tu retourne ton char**  -->  char**  CreerGrille(, int Ligne, int Colonne)
    - tu passe par un pointeur sur t'as grille ce qui te donne un char***
          --> 
void CreerGrille(char** cGrille, int Ligne, int Colonne)
                {
                        (*cGrille) = (char**)malloc( Ligne * sizeof(char*) );
                        for(int i=0;i<Ligne;i++)
                        (*cGrille)[i] = (char*)malloc( Colonne * sizeof(char) );
                }
    - 3 solution si tu compile en c++ mais peut être que ça marche en c avec les copilateur             moderne tu passe en réference ta grille
          -->  void CreerGrille(char**& cGrille,int Ligne,int Colonne) et tu laisse ton code comme il est.

voila je crois que ça devrai résoudre ton probleme.

Voili,Voilou
vendredi 18 février 2005 à 00:44:11 | Re : tableau a 2 dimensions

mezaya

Réponse acceptée !
houla la taille  a foiré je te lréécrit les 3 solution vite fait :
    - char** CreerGrille( int Ligne,int Colonne);
    -  void CreerGrille(char*** cGrille,int Ligne ,int Colonne);    // a utiliser comme ça (*cGrille) = ...
    - void  CreerGrille( char**& cGrille,int Ligne,int Colonne);  // je suis pas sur qu'il marche en C

Voili,Voilou
vendredi 18 février 2005 à 13:29:07 | Re : tableau a 2 dimensions

minet03

J'ai utilisé la 3° méthode : void CreerGrille( char**& cGrille,.....);
Donc toute mes autres fonctions fonctionnent sauf 1 qui en utilise une autre.
Cette fonction va analyser chaque case du tableau, et dans certains cas appelé une autre fonction où je passe encore une fois le tableau. Voilà comment je les déclare :

void PlacerB(char** cGrille, int Ligne, int Colonne, int B); // c'est celle ci qui va appelé
void B(int xPos, int yPos,char** cGrille); // celle ci dans certain cas

Et il me sort une erreur du même type qu'avant (donc je pense encore une erreur avec les pointeurs)

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
vendredi 18 février 2005 à 13:42:01 | Re : tableau a 2 dimensions

mezaya

Réponse acceptée !
je sais pas trop il faudrait voir le code de tes deux fonctions mais regarde tout d'abord si tu ne dépasse pas les limites de ta grille.

sinon si tu modifie ta grille dans une de tes fonction il faut passer encore par char**&

je peut pas t'en dire plus il faudrait que je vois le code

Voili,Voilou
vendredi 18 février 2005 à 14:26:53 | Re : tableau a 2 dimensions

minet03

J'ai mis la fonction appelé dans la fonction appelante (ca fait un long code mais bon). J'ai compilé même erreur. Donc comme tu la dit ça déborde. J'ai donc amélioré cette "fonction", merci beaucoup.

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite


Cette discussion est classée dans : ligne, int, colonne, char, cgrille


Répondre à ce message

Sujets en rapport avec ce message

conversion [ par coyotedef ] salut!!lors de la compilation de mon code une erreur apparait. impossible de trouver un remede. "cannot convert parameter 1 from 'char [10]' to 'char' pb classe [ par JediMaster ] j'ai créé un tableau dynamique dans une classe comme ca:class MaClasse{public: int m_largeur; int m_hauteur; int** m_tableau; MaClasse(int lar,int hau test morpion [ par nadml ] nous programmons un morpion et nous avons un problème avec notre test de case valide ou pas est ceque  quelqu'un pourrez nous aidez à résoudre notre p allocation dynamique [ par ralou ] salut tlm mon prob c est que je veux utiliser une fonction pour creer des tableaus dynamiques (langage C), mais j'arrive pas a comprendre ou a vrai d Probleme avec getLine() [ par adakick ] Bonjour j' ai un programme qui récupère toutes les informations passer par lentrée standard et qui affiche les information ligne par ligne, mais mon c Passer un tableau de char en paramètre [ par DeadStar117 ] Bonjour,Je cherche à passer des tableaux de char en paramètre à mes procédure mais je n'y arrive pas.Voila un exemple de code:GestionArbre GeAr;<font probleme avec une chaine de caractere [ par joben22 ] Bonsoir, j'ai un petit soucis avec une fonction que j'essaie de coder. En fait, je lis le contenue d'un fichier, le place dans un char* et la j'aimer Recherche d'un numéro ligne par ligne [ par Vry ] Bonjour, je suis sur un programme en C où j'ai quelques soucis. Je possède un fichier texte où sont déjà entrer des données, je souhaiterai crée un jeu d'echec C++ [ par CKBT ] bonjour, Je débute en programmation C++, je dois réaliser un pseudo jeu d'echec. Mais j'ai un soucis au niveau de l'echiquier. Je veux utiliser un tab PUISSANCE 4 C++ [ par AlenDjavo ] salut tout le monde je suis bloque dans mon pussance 4 je n`arive pas a afficher mon tableu quelquen peux me aider svp dsl pour le fautes.


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales