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 Discussion :

tableau dynamique multidimensionnel en parametre


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 4
    Points : 4
    Points
    4
    Par défaut tableau dynamique multidimensionnel en parametre
    Bonjour a tous

    Je me remet au c après quelques années , tout est encore dans la tête , mais des questions existentielles m'envahissent :

    mon but est de faire le carré d'une matrice de 1 et de 0 , ayant une taille variable (saisie au debut de mon programme)... Je stocke ma matrice dans un tableau multidimensionnel , et je veux faire des calculs sur cette dernière , en la passant en parametre dans une fonction ... donc :
    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
    16
    17
    18
    19
     
    //fonction de calcul avec la matrice en parametre
    int calc_case(s32 x,s32 y,s32 matrice[][4], s32 taille){
    	s32 icalc;
    	s32 resultat=0;
    	for(icalc=0;icalc<taille;icalc++){
    	resultat=bool_or(resultat,bool_and(matrice[x][icalc],matrice[icalc][y]));
    	}
    	return resultat;
    }
     
    int main(){
    //saisie de la taille de la matrice ... initialisation de la matrice ...
    //....
    //..
     
    //appel de la fonction pour calcculer dans une case
    int tamp=calc_case(0,0,matrice,matrice_taille);
    }
    et donc mon problème :

    la taille de ma matrice est variable , mais je suis obligé de la déclarer dans ma fonction avec une valeur fixe (ici 4 , au pif)
    comment puis-je faire passer la taille ma matrice ? car si je laisse
    j'ai une erreur me disant invalid use of array with unspecified bounds

    Merci d'avance pour vos lumières !

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 376
    Points : 41 544
    Points
    41 544
    Par défaut
    Tu ne peux pas utiliser la syntaxe tableau dans la déclaration si ta taille est variable.

    Tu devras gérer toi-même la matrice. Soit en faisant toi-même la multiplication (genre: matrice[x+largeur*y]) soit utiliser un tableau de pointeurs qui te permettra d'utiliser la syntaxe "[][]" pour accéder aux éléments de la matrice.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. un tableau dynamique multidimensionnel en c++
    Par sonyabm dans le forum Débuter
    Réponses: 1
    Dernier message: 22/11/2009, 19h31
  2. Creation d'un Sub avec un tableau dynamique comme parametre
    Par Nico820 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/07/2008, 07h16
  3. tableau dynamique en parametre d'une fonction
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 27/04/2004, 16h35
  4. passer un tableau dynamique en parametre...
    Par annecyrond dans le forum Langage
    Réponses: 5
    Dernier message: 07/03/2003, 09h59
  5. Réponses: 4
    Dernier message: 13/05/2002, 16h43

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