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 :

Allocation de matrice à 3D de flottants dans tas


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 121
    Points : 92
    Points
    92
    Par défaut Allocation de matrice à 3D de flottants dans tas
    Bonjour!

    Je voudrais allouer une matrice de ce type dans le tas :
    ma_matrice[indice_entier1][indice_entier3][indice_entier3] = flottant

    Je l'ai déclarée et initialisée comme ceci mais je ne suis pas sûr du tout de moi notamment pour les paramètres des malloc...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    float ***ma_matrice
    ma_matrice = (float ***)malloc(nb_indices_entier1 * sizeof(int));
      for(i = 0; i < nb_indices_entier1; i++){
        ma_matrice[i] = (float **)malloc(nb_indices_entier2 * sizeof(int));
        for(j = 0; j < nb_indices_entier2; j++){
          ma_matrice[i][j] = (float *)malloc(nb_indices_entiers3 * sizeof(float));
        }
      }
    Est-ce que quelqu'un pourrait me dire si c'est cohérent ou pas?

    Merci!

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 38
    Points : 34
    Points
    34
    Par défaut
    Salut

    Au niveau cohérence, il y a un problème pour tes sizeof. En effet, tu utilises sizeof(int) alors que tu veux des tableau de pointeur vers des pointeurs, et des tableau de pointeur. Donc tu dois utiliser plutot sizeof(float**) et sizeof(float*).

    Cela ne provoque pas d'erreur dans ton cas (enfin, je suppose) car sizeof(int) = sizeof(float*) = sizeof(float**), mais ce n'est pas du tout toujours vrai, donc c'est à éviter...

    Après, tu ne teste jamais si tes mallocs ont réussi ou pas, ce qui n'est pas top, surtout si tu demandes d'allouer de grande matrices... Il y a plusieurs topics qui parlent de ce problème que tu peux aller voir
    La réflexion est le meilleur moyen d'apporter des réponses à des questions et vice versa

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL-SERVER2K] Nombres flottant dans un SELECT
    Par andlio dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/08/2007, 14h18
  2. [AJAX] Des fenetres flottantes dans une page
    Par localhost dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/05/2007, 12h25
  3. Lecture nombre flottant dans fichier
    Par Mikolay dans le forum C
    Réponses: 17
    Dernier message: 29/03/2007, 09h26
  4. Bouton flottant dans Excel
    Par charlie105 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2007, 12h14
  5. Réponses: 14
    Dernier message: 28/07/2006, 10h20

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