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 :

Redefinition Taille Tableau 2D


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 51
    Par défaut Redefinition Taille Tableau 2D
    Bonjour à tous,
    j'ai un probleme. Comment redefinir la taille d'un tableau à deux dimmension en fonction d'une variable?

    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char contenu_fichier[1][255] = {0};
    je voudrais augmenter la taille de la 1ere dimension en fonction d'une variable .

    merci

  2. #2
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    Bonjour,

    impossible, (a part peut etre e C99), si tu veux un tableau a taille dynamique, il faut faire de l'allocation : dynamique (malloc et realloc).

  3. #3
    Membre chevronné Avatar de cmoibal
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2007
    Messages : 361
    Par défaut
    Bonjour,

    Normalement, la re-allocation de la mémoire s'effectue sur une zone déja alloué dynamiquement et non statiquement....

    Donc, si tu veux re-allouer une nouvelle zone pour le même tableau que tu a définie comme statique: c'est pas possible !!!

    donc, il faut definir un pointeur en statique , et changer seuelemnt ça valeur pour qu'elle pointe sur la zone utilisé ....

    RQ: un tableau alloué dynamiquement de 2D c'est comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // Exemple d'un tableau T[100][100];
    char **pTableau;
    (pTableau) = malloc(100);
    pTableau[0] = malloc(100);
    ...
    pTableau[99] = malloc(100);

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 487
    Par défaut
    Déclare ton tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char **contenu_fichier ;
    Apres tu peux allouer la mémoire de ton tableau avec malloc et la réallouer avec realloc

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 51
    Par défaut
    ok dc si je fais quelque chose comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    char **contenu_fichier;
    contenu_fichier = malloc (nbligne);
     
    for(i=0;i<=nbligne;i++)
    contenu_fichier[i] = malloc(128);
    ca devrait marcher

  6. #6
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512

  7. #7
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    ca devrais presque marcher

    ca ca doit etre un poil mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #define TAILLE_LIGNE        128
     
    char **contenu_fichier;
    contenu_fichier = malloc (nbligne * sizeof( *contenu_fichier ) ); 
    /* idealement tester le retour de l allocation pour etre sur qu'elle a bien marchée */
     
    for(i=0;i<=nbligne;i++)
    contenu_fichier[i] = malloc(TAILLE_LIGNE * sizeof( **contenu_fichier ) );
    /*pareil tester chaque retour */

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

Discussions similaires

  1. Taille tableau par utilisateur
    Par nicodn02 dans le forum C
    Réponses: 56
    Dernier message: 26/04/2007, 17h28
  2. Aligner taille tableau sur celui du dessous
    Par linar009 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/09/2006, 16h02
  3. besoin d'aide probleme taille tableau
    Par zhao dans le forum C++
    Réponses: 8
    Dernier message: 28/09/2006, 09h14
  4. [Tableaux] taille tableau a deux dimensions
    Par nath-0-0 dans le forum Langage
    Réponses: 2
    Dernier message: 24/08/2006, 18h04
  5. [Tableaux] trouver taille tableau html en php
    Par eulalie15 dans le forum Langage
    Réponses: 4
    Dernier message: 03/07/2006, 13h47

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