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 :

Problème d'allocation (malloc)


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 21
    Par défaut Problème d'allocation (malloc)
    Bonjour,

    Voici l'extrait de code qui fache : :

    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
    20
    21
    22
    23
    24
    char* substring(char* tmp, int deb, int fin){
    	const int nb = (fin - deb) + 1;
            char* temp;
            if(nb>=1)
    	          temp  = (char*)malloc(nb * sizeof(char));
            else
    	          printf("nb est <= 1\n");
     
    	if(temp ==NULL)
    		printf("Erreur : pointeur nul...");
    	int i;
     
    	for(i=0;i!=(fin-deb);i++){
    		printf("i:%d, tmp[deb+i]:%c\n",i, tmp[deb + i]);
    		temp [i]=tmp[deb + i];
    		printf("i:%d, temp[i]:%c\n",i, gnu[i]);
    	}
     
    	temp [fin - deb] = '\0';
    	printf("temp : %s\n", temp );
     
    	return temp ;
     
    }
    L'erreur que je rencontre vient de la ligne : temp [i]=tmp[deb + i];
    Sur la console mon code d'erreur qui indique le pointeur temp a NULL s'affiche également.

    J'ai recherché sur le net et malloc ne renvoi NULL que quand il n'a plus d'espace d'adressage (or ici nb = 6 dans la majorité des cas soit 6octets... et il me reste 1g de ram disponible d'après Windows).

    J'ai d'autres soucis sur des allocations de chaines de caractères dans mon programme...

    Je réalise ce programme sous Visual Studio 2005 sur un windows xp pro sp2 installé sur une WMware.

    En vous remerciant

    Voldie

  2. #2
    Invité
    Invité(e)
    Par défaut
    dit donc, je me trompe peut etre, mais ton for(), il n'itère pas une fois de trop ?

    for(i=0; i!=(fin-deb); i++)
    ca ne devrait pas etre i != (fin-deb) -1 plutot ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 21
    Par défaut
    En fait le probleme c'est que le pointeur est nul de toute façon donc il me renvoie une erreur dès la première boucle :s

    Merci

  4. #4
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Voici un exemple de correction:

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    char *substring_dup(char const *s, size_t debut, size_t fin)
    {
        char *ret = NULL;
     
        if (s != NULL)
        {
            size_t const len = (fin - debut) + 1;
     
            if (len > 0)
            {
                ret = malloc((len + 1) * sizeof *ret);
                if (ret != NULL)
                {
                    size_t i;
     
                    for (i = 0; i < len; i++)
                    {
                        ret[0] = 0;
                        strncat(ret, s + debut, len);
                    }
                }
            }
        }
     
        return ret;
    }
     
    int main(void)
    {
        int ret = 0;
        char const *s = "Bienvenue sur Developpez.com";
        char *dvp = substring_dup(s, 14, 23);
        if (dvp != NULL)
        {
            printf("---%s---\n", dvp);
        }
        else
        {
            ret = EXIT_FAILURE;
        }
        return ret;
    }
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 21
    Par défaut
    Merci pour ton exemple
    Mais j'aimerai surtout connaitre mon erreur en fait !

    J'ai testé ton code et il me renvoie systématiquement null...
    Pourtant ma chaine s'affiche bien juste avant l'appel de la fonction...

    Voldie

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par voldie Voir le message
    Voici l'extrait de code qui fache :
    Ce code est incomplet...
    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
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : D:\dev\forums\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c: In function `substring':
    main.c:5: warning: implicit declaration of function `malloc'
    main.c:7: warning: implicit declaration of function `printf'
    main.c:9: error: `NULL' undeclared (first use in this function)
    main.c:9: error: (Each undeclared identifier is reported only once
    main.c:9: error: for each function it appears in.)
    main.c:16: error: `gnu' undeclared (first use in this function)
    Process terminated with status 1 (0 minutes, 0 seconds)
    4 errors, 2 warnings
    Je suppose que tu veux ceci :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <assert.h>
     
    char *substring (char const *s_ori, int deb, int fin)
    {
       char *temp = NULL;
       const int nb = (fin - deb) + 1;
       if (nb >= 1 && fin <= strlen (s_ori))
       {
          temp = malloc (nb);
          if (temp != NULL)
          {
             int i;
     
             for (i = 0; i != (fin - deb); i++)
             {
                assert (deb + i <= strlen (s_ori));
                temp[i] = s_ori[deb + i];
             }
     
             temp[fin - deb] = '\0';
          }
       }
       return temp;
    }
     
    int main (void)
    {
       char const *s = "Hello world";
     
    #if 1
       char *sub = substring (s, 1, 11); /* 11 : OK */
    #else
       char *sub = substring (s, 1, 12); /* 12 : error */
    #endif
     
       if (sub != NULL)
       {
          printf ("'%s'\n", sub);
          free (sub), sub = NULL;
       }
       else
       {
          puts ("error");
       }
       return 0;
    }
    En gros, c'est ça que tu cherches à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    /* ---------------------------------------------------------------------
       STR_sub_dyn  ()
       ---------------------------------------------------------------------
       Fait une copie d'une sous chaine entre deux pointeurs
       A liberer.
       ---------------------------------------------------------------------
       E : debut
       E : fin
       --------------------------------------------------------------------- */
       char *STR_sub_dyn (char const *const pbeg
                          ,char const *const pend);
    http://emmanuel-delahaye.developpez.com/clib.htm
    Module STR

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 21
    Par défaut
    En fait tu as exactement la même erreur !

    ret = (char*)malloc((len + 1) * sizeof *ret);

    Renvoi null :p

    Un problème de compilation ?

    Voldie

    PS : je ne vois pas trop comment la fonction STR_sub_dyn () fonctionne :s

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 21
    Par défaut
    Désole effectivement...

    La dernière version qui compile :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    char* substring(char* tmp, int deb, int fin){
    	const int nb = (fin - deb) + 1;
    	char* temp;
     
    	if(nb>=1)
    	          temp = (char*)malloc(nb * sizeof(char));
            else
    	          printf("nb est <= 1\n");
     
    	printf("stderror %s\n",stderr);
     
    	if(temp==NULL)
    		printf("hakuna mattata...");
    	int i;
     
    	for(i=0;i!=(fin-deb)-1;i++){
    		printf("i:%d, tmp[deb+i]:%c\n",i, tmp[deb + i]);
    		temp[i]=tmp[deb + i];
    		printf("i:%d, temp[i]:%c\n",i, temp[i]);
    	}
     
    	temp[fin - deb] = '\0';
    	printf("temp: %s\n", temp);
     
    	return temp;
     
    }

  9. #9
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par voldie Voir le message
    En fait tu as exactement la même erreur !

    ret = (char*)malloc((len + 1) * sizeof *ret);

    Renvoi null :p

    Un problème de compilation ?

    Voldie

    PS : je ne vois pas trop comment la fonction STR_sub_dyn () fonctionne :s
    Chez moi, malloc() ne renvoie pas NULL.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 21
    Par défaut
    Le problème viendrait donc de l'appel de la fonction ?
    Pourtant je fais beaucoup de malloc avant sans qu'il me trouve un problème...

    Ya t-il une option dans visual studio pouvant causer ce problème ?

    Voldie

  11. #11
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par voldie Voir le message
    La dernière version qui compile :
    Et que je balance du code sans rien vérifier...
    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
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : D:\dev\forums\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c: In function `substring':
    main.c:6: warning: implicit declaration of function `malloc'
    main.c:8: warning: implicit declaration of function `printf'
    main.c:10: error: `stderr' undeclared (first use in this function)
    main.c:10: error: (Each undeclared identifier is reported only once
    main.c:10: error: for each function it appears in.)
    main.c:12: error: `NULL' undeclared (first use in this function)
    Process terminated with status 1 (0 minutes, 0 seconds)
    4 errors, 2 warnings

  12. #12
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par voldie Voir le message
    PS : je ne vois pas trop comment la fonction STR_sub_dyn () fonctionne :s
    As-tu récupéré le code source ?
    Qu'est-ce que tu ne comprends pas ?
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    #include <stdlib.h>
    #include <string.h>
     
    /* ---------------------------------------------------------------------
       STR_sub_dyn  ()
       ---------------------------------------------------------------------
       Fait une copie d'une sous chaine entre deux pointeurs
       A liberer.
       ---------------------------------------------------------------------
       E : debut
       E : fin
       S : chaine resultante
       --------------------------------------------------------------------- */
    char *STR_sub_dyn (char const *const pbeg
                       ,char const *const pend)
    {
       char *s;
       if (pbeg && *pbeg)
       {
          if (pend)
          {
             size_t const len = (size_t) (pend - pbeg);
             s = malloc (len + 1);
             if (s)
             {
                *s = 0;
                strncat (s, pbeg, len);
             }
          }
          else
          {
             s = NULL;
          }
       }
       else
       {
          s = NULL;
       }
       return s;
    }
    C'est pas un modèle de codage, mais ça reste compréhensible, non ?

    Aujourd'hui, je ferais comme ça (je vais d'ailleurs modifier mon code en ce sens)
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
     
    #include <stdlib.h>
    #include <string.h>
     
    /* ---------------------------------------------------------------------
       STR_sub_dyn  ()
       ---------------------------------------------------------------------
       Fait une copie d'une sous chaine entre deux pointeurs
       A liberer.
       ---------------------------------------------------------------------
       E : debut
       E : fin
       S : chaine resultante
       --------------------------------------------------------------------- */
    char *STR_sub_dyn (char const *const pbeg, char const *const pend)
    {
       char *s = NULL;
       if (pbeg != NULL && *pbeg != 0 && pend <= pbeg + strlen (pbeg))
       {
          if (pend != NULL)
          {
             size_t const len = (size_t) (pend - pbeg);
             s = malloc (len + 1);
             if (s != NULL)
             {
                *s = 0;
                strncat (s, pbeg, len);
             }
          }
       }
       return s;
    }
     
    #ifdef TEST
     
    #include <stdio.h>
     
    int main (void)
    {
       char const *s = "Hello world";
     
    #if 0
       char *sub = STR_sub_dyn (s + 1, s + 11); /* 11 : OK */
    #else
       char *sub = STR_sub_dyn (s + 1, s + 12); /* 12 : error */
    #endif
     
       if (sub != NULL)
       {
          printf ("'%s'\n", sub);
          free (sub), sub = NULL;
       }
       else
       {
          puts ("error");
       }
       return 0;
    }
     
    #endif

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 21
    Par défaut
    Oui oui pas de problème !

    Mon problème est que la fonction malloc me renvoie null quand je l'utilise !
    Sinon ta fonction, celle de Thierry et la mienne marchent très bien

    Désolé de ne pas être clair :s

    Mon problème ne vient pas de mon code mais bien de malloc... je vous demande donc si vous connaissiez des cas autre que l'absence de mémoire disponible (ce qui n'est pas le cas ici) pour que malloc renvoie null...

    Merci encore

    Voldie

  14. #14
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    Citation Envoyé par voldie Voir le message
    Le problème viendrait donc de l'appel de la fonction ?
    Pourtant je fais beaucoup de malloc avant sans qu'il me trouve un problème...

    Ya t-il une option dans visual studio pouvant causer ce problème ?

    Voldie
    Peut-être faut-il utiliser free() pour libérer la mémoire non-utilisée

  15. #15
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par voldie Voir le message
    Mon problème ne vient pas de mon code mais bien de malloc... je vous demande donc si vous connaissiez des cas autre que l'absence de mémoire disponible (ce qui n'est pas le cas ici) pour que malloc renvoie null...
    Un autre gros pain ailleurs dans le code...

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 21
    Par défaut
    Oui j'y ai pensé également, je suis donc aller voir du coté d ema RAM et il me reste 1go de mémoire non alouée...

    J'utilise beaucoup de malloc mais sur de très petite taille... Mon programme prend 2mo environ en ram...

    Voldie

  17. #17
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par voldie Voir le message
    Désole effectivement...

    La dernière version qui compile :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    char* substring(char* tmp, int deb, int fin){
    	const int nb = (fin - deb) + 1;
    	char* temp;
     
    	if(nb>=1)
    	          temp = (char*)malloc(nb * sizeof(char));
            else
    	          printf("nb est <= 1\n");
     
    	printf("stderror %s\n",stderr);
     
    	if(temp==NULL)
    		printf("hakuna mattata...");
    	int i;
     
    	for(i=0;i!=(fin-deb)-1;i++){
    		printf("i:%d, tmp[deb+i]:%c\n",i, tmp[deb + i]);
    		temp[i]=tmp[deb + i];
    		printf("i:%d, temp[i]:%c\n",i, temp[i]);
    	}
     
    	temp[fin - deb] = '\0';
    	printf("temp: %s\n", temp);
     
    	return temp;
     
    }
    • Il se peut à ce stade que la valeur de temp soit testée alors qu'elle n'a pas été initialisée.
    • Il faut allouer la mémoire pour contenir (nb + 1) caractères.
    • i défini au milieu d'un bloc.
    • temp et tmp sont déréférencés dans la boucle, alors qu'il est possible que leur valeur soit NULL.


    Penses-tu réellement que ta fonction marche très bien?

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  18. #18
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    Salut,

    Peux-tu poster l'intégralité du code, de façon à pouvoir le compiler?
    (ou alors zipper ton projet)

  19. #19
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    et de plus temp n'est pas initialisé, ce qui fait que le test

    et tout ce qui suit n'a donc aucune cohérence..

    ça passe ou ça passe pas.. Totalement aléatoire..

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 21
    Par défaut
    Je pense que ma fonction marche pas trop mal

    En fait je pense que la tienne marche très bien !
    Or au final le problème est le même : malloc renvoi null quand j'utilise ta fonction aussi.

    Voldie

    PS : désolé je ne peux pas poster le reste de mon code... algorithme confidentiel pour mon client :s

    * Il se peut à ce stade que la valeur de temp soit testée alors qu'elle n'a pas été initialisée.
    * Il faut allouer la mémoire pour contenir (nb + 1) caractères.
    * i défini au milieu d'un bloc.
    * temp et tmp sont déréférencés dans la boucle, alors qu'il est possible que leur valeur soit NULL.
    * => Tu voudrais dire que Malloc crée un thread à part pour allouer l'espace ?
    * => Pour ça que mon nb est (fin - deb) + 1
    * => méa culpa, j'ai passé trop de temps sur java ces derniers temps
    * => temp et tmp sont des pointeur locaux définis dans tout le sous programme ... qu'entends-tu par déréférencés ?

    Voldie

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème d'allocator
    Par Quark-Up dans le forum C++
    Réponses: 4
    Dernier message: 23/03/2006, 01h37
  2. Problème d'allocation mémoire
    Par cali1983 dans le forum C++
    Réponses: 10
    Dernier message: 10/03/2006, 23h23
  3. Problème d'allocation de mémoire dans la pile
    Par prophet666 dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 19/01/2006, 02h22
  4. fenetre MDI - problème d'allocation
    Par say dans le forum C++Builder
    Réponses: 8
    Dernier message: 03/11/2005, 17h06
  5. Question sur les problèmes d'allocation dynamique
    Par slylafone dans le forum C++
    Réponses: 23
    Dernier message: 25/10/2004, 14h18

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