IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

Problème de déclaration de tableaux


Sujet :

C++/CLI

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    79
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 79
    Par d�faut Problème de déclaration de tableaux
    Je vais pas tarder � "craquer" comme il est de rigueur de dire dans ces cas l�...

    Cette ann�e, j'ai fait plusieurs mois de C++ sous linux, des programmes console � la pelle etc...

    J'arrive en stage, on me dit, "faut faire un programme, avec interface graphique" (l� je pense "visual + MFC"), et "y aura des calculs sur des matrices, etc..." (l� je pense C++). J'ai pas mal programm� donc en C et C++ (console), et je me d�brouille en Delphi et VB (jamais eu le moindre probl�me avec ces deux l�).

    Et l�, depuis mercredi, j'ai attaqu� le Visual C++.

    Je suis compl�tement pomm�, j'ai m�me pas l'impression que c'est le m�me langage, le compilateur m'envoie des erreurs � tout va, alors que mon code correspond bel et bien � du C++... Je me sens bien mal.

    La derni�re en date, qui m'a pouss� � �crire un post de plus (bientot je vais passer le plus gros de mon temps � poster plutot qu'� coder...) c'est �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
    			 {
    				 int i,j;
    				 i = 2;
    				 j = 4;
    				 double matA[i][j];
    			 }
    	};
    Tout b�te, je clique sur un bouton, et �a d�clare un tableau de dimensions i et j.

    Et bien non, monsieur Visual C++ veut pas ! :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    c:\documents and settings\lustrement\bureau\essai_multi\essai_multi\Form1.h(90) : error C2057: expression constante attendue
    c:\documents and settings\lustrement\bureau\essai_multi\essai_multi\Form1.h(90) : error C2466: impossible d'allouer un tableau de taille constante 0
    c:\documents and settings\lustrement\bureau\essai_multi\essai_multi\Form1.h(90) : error C2057: expression constante attendue
    c:\documents and settings\lustrement\bureau\essai_multi\essai_multi\Form1.h(90) : error C2466: impossible d'allouer un tableau de taille constante 0
    c:\documents and settings\lustrement\bureau\essai_multi\essai_multi\Form1.h(90) : error C2087: 'matA' : indice manquant
    c:\documents and settings\lustrement\bureau\essai_multi\essai_multi\Form1.h(90) : error C2133: 'matA' : taille inconnue
    J'ai pas le droit de d�clarer un tableau de dimensions disons "non constantes"
    Enfin bref, je peux pas (c'�tait l'utilisation que je voulais en faire) cr�er une fonction, qui prend en param�tre un tableau et ses dimensions, et dans cette fonction red�clarer un autre tableau qui utilise ces dimensions ... c'est pas clair : je m'explique :

    Exemple de fonction qui fait la transpos�e d'une matrice :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    double transp(double matA, int m, int n)
    {
    double matB[n][m];
    int i,j;
     
    for(i=0;i<m;i++)
    {
         for(j=0;j<n;j++)
         {
               matB[j][i] = matA[i][j];
         }
    }
    return(matB);
    }
    Bref, c'est bon, j'ai vu visual C++, et je suis pas l� d'y retoucher. Enfin, j'ai encore 4 semaines � gal�rer....

  2. #2
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    un titre plus explicite aurait �t� bienvenue. [ancien : Marre des "cadeaux" de Visual C++ 2005]

    Ensuite, ton projet n'est pas MFC, c'est semble-t-il un projet winforms.

    Pour faire des tableaux, je te sugg�re d'utiliser les array du namespace cli (voir http://dotnet.developpez.com/faq/cpp...ntaxe#cliarray)

    une allocation dynamique se fait avec new (ou gcnew pour les array)

    tu peux faire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    int tab[20];
    int * tab = new int[x];
    mais pas
    et ca, c'est valable quelque soit le compilateur c++ !

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    79
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 79
    Par d�faut
    Oui, je sais, c'est vrai pour l'allocation dynamique... Je crois que je commence compl�tement � marcher � c�t� de mes pompes . Je suis compl�tement d�pass� par les �vennements, et je sais pas du tout comment me sortir de ce faux pas. Je crains que mon stage se traduise par un pur �chec... C'est par les erreurs qu'on apprend ! tout ne sera pas perdu.

    Merci pour ta r�ponse

  4. #4
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    Citation Envoy� par BenjaminLustrement
    e crains que mon stage se traduise par un pur �chec... C'est par les erreurs qu'on apprend ! tout ne sera pas perdu.
    Justement, c'est une opportunit� d'apprendre plein de nouvelles choses

    Il n'y a echec que lorsqu'on a arret� de vouloir r�ussir

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    79
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 79
    Par d�faut
    Pur�e je suis maudit c'est pas possible !

    J'ai voulu d�clarer mon tableau � deux dimensions :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
     int i=4,j=5;
     int **matrice;
     matrice  = new int[i][j];
    Et �a marche pas ! c'est pas croyable !


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    c:\documents and settings\lustrement\bureau\essai_multi\essai_multi\Form1.h(89) : error C2540: expression non constante comme limite de tableau
    c:\documents and settings\lustrement\bureau\essai_multi\essai_multi\Form1.h(89) : error C2440: '=' : impossible de convertir de 'int (*)[1]' en 'int **'

  6. #6
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    pinaize, c'est plutot comme ca qu'il faut faire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    	int i=4,j=5;
    	int **matrice;
    	matrice  = new int*[i];
    	for (int k=0;k<i;k++)
    		matrice[k] = new int[j];
    mais si je peux me permettre une pr�cision, c'est plutot du C ca, le c++ ca serait � base de vecteurs, et en c++/cli plutot des array

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    79
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 79
    Par d�faut
    Je viens en effet de m'en apercevoir. Je pense que j'aurais d� me plonger dans le C++ il y a deux semaine, �a m'aurait �viter de faire des m�langes (C, C#, C++, Java....).

    Bon, merci encore et honte � moi.

Discussions similaires

  1. Proble avec un vhosts sous Apache (Mandrake 10.1)
    Par __fabrice dans le forum Apache
    R�ponses: 2
    Dernier message: 27/05/2005, 13h11
  2. Aide sur la RS 232
    Par Andr0 dans le forum C
    R�ponses: 5
    Dernier message: 12/04/2005, 13h58
  3. Proble capture direct Show
    Par liliemumue dans le forum DirectX
    R�ponses: 3
    Dernier message: 13/12/2004, 21h04
  4. R�ponses: 2
    Dernier message: 05/10/2004, 22h43
  5. ListView->Items->Clear() !!! Qques probl de perf
    Par Nicolas_a69 dans le forum C++Builder
    R�ponses: 3
    Dernier message: 30/08/2002, 11h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo