Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Futur Membre du Club
    Inscrit en
    juillet 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : juillet 2007
    Messages : 41
    Points : 15
    Points
    15

    Par défaut Remplissage d'une matrice en C++

    Salut tout le monde
    je suis encore à l'étape d'apprentissage du C++, et j'ai fait ce petit programme qui compile sans erreurs mais il s'arrête au cours de son execution :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #include<iostream.h>
    #include<malloc.h>
    #include<stdlib.h>
    void main()
    {
    	int N,M;
    	cout<<"Donner le nombre de lignes"<<endl;
    	cin>>N;
    	cout<<"Donnez le nombre de colonnes"<<endl;
    	cin>>M;
    	char **T;
    	T=(char**) malloc(N*M*sizeof(char));
    	for(int i=0;i<N;i++)
    	{
    		for (int j=0;j<M;j++)
    		{
    			cout<<"T["<<i+1<<"]["<<j+1<<"]=";
    			cin>>*(*(T+i)+j);
    		}
    	}
    	free(T);
    	system ("pause");
    }
    Peux-je avoir une correction à ma solution ? Je voulais aussi savoir s'il est possible de remplir le tableau sans demander le nombre de lignes et de colonnes d'avance. Merci

  2. #2
    Membre émérite
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : septembre 2008
    Messages : 680
    Points : 801
    Points
    801

    Par défaut

    Bonjour,

    Utilise Boost.MultiArray, tu te prendras moins la tête et tu pourras faire plus de choses http://www.boost.org/doc/libs/1_36_0...doc/index.html

    Oublie aussi malloc et free, ça c'est du C.
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  3. #3
    Futur Membre du Club
    Inscrit en
    juillet 2007
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : juillet 2007
    Messages : 41
    Points : 15
    Points
    15

    Par défaut

    Citation Envoyé par Florian Goo Voir le message
    Bonjour,

    Utilise Boost.MultiArray, tu te prendras moins la tête et tu pourras faire plus de choses http://www.boost.org/doc/libs/1_36_0...doc/index.html

    Oublie aussi malloc et free, ça c'est du C.
    Salut Florian, je te remerci pour l'info mais c'est quoi ce Boost? à quoi ça sert? Et je remercie aussi pour le cours mais ya pas un autre en français car chui pas bon en anglais.
    aussi voila j'ai essayé avec New, delete mais domage le prob pérciste encore:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include<iostream.h> 
    #include<stdlib.h> 
    void main() 
    { 
       int N,M; 
       cout<<"Donnez le nombre de lignes"<<endl; 
       cin>>N; 
       cout<<"Donnez le nombre de colonnes"<<endl; 
       cin>>M; 
       char **T; 
       T = new char* [N*M] ; 
       for(int i=0;i<N;i++) 
       { 
          for (int j=0;j<M;j++) 
          { 
             cout<<"T["<<i+1<<"]["<<j+1<<"]="; 
             cin>>*(*(T+i)+j); 
          } 
       } 
       delete[] T; 
       system ("pause"); 
    }

  4. #4
    Expert Confirmé Sénior
    Avatar de Luc Hermitte
    Homme Profil pro Luc Hermitte
    Développeur informatique
    Inscrit en
    août 2003
    Messages
    4 730
    Détails du profil
    Informations personnelles :
    Nom : Homme Luc Hermitte
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : août 2003
    Messages : 4 730
    Points : 7 790
    Points
    7 790

    Par défaut

    Si c'est un exo, la correction est dans la FAQ.
    Sinon, préfère en effet utiliser des classes toutes faites comme p.ex. boost.multi_array (pour les tableaux 2D) ou boost.ublas (pour les maths)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média.

  5. #5
    Alp
    Alp est déconnecté
    Expert Confirmé Sénior
    Avatar de Alp
    Homme Profil pro
    Inscrit en
    juin 2005
    Messages
    8 584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : juin 2005
    Messages : 8 584
    Points : 11 304
    Points
    11 304

    Par défaut

    Salut,

    Je te conseille de commencer par relire tes cours de C++, surtout la partie sur les pointeurs et l'allocation dynamique.
    Siinon, tu as toujours le cours de Bruce Eckel disponible en français sur Developpez : http://bruce-eckel.developpez.com/li...on/ticpp2vol1/

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •