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 :

Probleme allocation memoire d'une fonction


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 37
    Points
    37
    Par défaut Probleme allocation memoire d'une fonction
    Bonjour,

    J'utilise un tableau de structure dans une fonction dont je ne connais pas la taille avant d'avoir parcourus tous ces element!

    Pour l'instant je créer un tableau de cette structure avec un grands nombre d'indice mais sa me gene.

    Je voudrais pouvouir augmenter la taille de mon tableau de structure dynamiquement!

    Apres quelque recherche j'ai trouve run page dédiée http://rperrot.developpez.com/articles/c/allocationC/

    Je me suis inspirer du code suivant
    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
    /* le type complexe */
    struct complexe
    {
         double Re;
         double Im;
    };
    /* une défition plus courte pour la structure */
    typedef struct complexe Complexe;
     
    Complexe * c;
     
    c = malloc(sizeof(Complexe));
     
    if ( c == NULL )
    {
         fprintf(stderr,"Allocation Impossible");
         exit(EXIT_FAILURE);
    }
    Pour pouvoir écrire mon code...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //Cible cible[nXSize*nYSize];
    	struct Cible {
    				int x;
    				int y;
    				int score;
    				int indice;
    				int used;
    			};
    	typedef struct Cible StructureCible;
    	StructureCible *cible;
     
    	cible = malloc (sizeof(StructureCible));
    Mais quand je compile j'ai la petite erreur suivante;:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    snake.cpp:306: error: invalid conversion from 'void*' to 'main(int, char**)::StructureCible*'
    Si un de vous a une petite idée je vous serait reconnaissant

    bonne journée

    Nicolas

  2. #2
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Tu es sur un forum C, le minimum pour avoir une réponse est de poster un code en langage C, compilable.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    je comprend pas forcement pourquoi mon code va pas, je suis désoler mais je suis un débutant d'où mon poste dans la section et la différence entre c et c++ peu paret déroutante pour moi.

    Et je ne peu pas mettre une code compilable parce que il y a une erreur de compilation du a cette étape.

    De plus le code présentée fait parti d'un projet plus important je n'ais pas jugée nécessaire de montrer toutes le programme

  4. #4
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Je ne suis pas programmeur C++ mais à vue de nez comme ça, je dirais que le C++ contrairement au C, impose un transtypage lors de la conversion du type générique vers un autre type, et donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StructureCible *cible = (StructureCible *) malloc (sizeof(StructureCible));
    que tu pourras d'ailleurs rendre plus générique avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StructureCible *cible = (StructureCible *) malloc (sizeof *cible);

  5. #5
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    Citation Envoyé par nicolas.sitbon Voir le message
    <...>
    que tu pourras d'ailleurs rendre plus générique avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StructureCible *cible = (StructureCible *) malloc (sizeof *cible);
    Il y a toujours le cast qui gâche un peu cette généricitée ...

  6. #6
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par ssmario2 Voir le message
    Il y a toujours le cast qui gâche un peu cette généricitée ...
    En même temps faire un malloc en C++...

Discussions similaires

  1. [PHP 5.2] Allocation de memoire d'une fonction normal VS fonction static
    Par blackdevil86 dans le forum Langage
    Réponses: 1
    Dernier message: 31/01/2012, 11h41
  2. Réponses: 1
    Dernier message: 16/06/2006, 17h12
  3. Réponses: 44
    Dernier message: 18/05/2006, 17h19
  4. Grand Probleme d'appele d'une fonction
    Par Soufyane dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/02/2006, 16h57
  5. Probleme de pointeur sur une fonction
    Par nicky78 dans le forum C
    Réponses: 2
    Dernier message: 23/05/2004, 21h26

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