SOS!!! realloc explications....

pastaga29 Messages postés 8 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 2 mai 2007 - 2 mai 2007 à 18:06
emmatopiak Messages postés 149 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 17 mai 2007 - 3 mai 2007 à 12:40
Bonjour,
Je développe en C et je recontre un probleme avec la fonction realloc.
J'ai fait un petit exemple qui ne marche pas et j'aimerais avoir de plus amples explications ainsi qu'une solution sans malloc.

main()
{
    char *toto="SALUT";
   
    toto = realloc(toto,20);
}

Le but est de réallouer de l'espace mémoire à toto pour rajouter des lettres. Le mode débug bloque sur le realloc...

Merci d'avance

7 réponses

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 mai 2007 à 19:07
*toto pointe sur une constante chaine, impossible de désallouer ni de déplacer en mémoire.

ciao...
BruNews, MVP VC++
0
pastaga29 Messages postés 8 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 2 mai 2007
2 mai 2007 à 19:17
OK... mais alors comment faire pour augmenter la taille de toto? Je souhaite rajouter des lettres mais sans passer par un autre tableau....
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 mai 2007 à 19:28
Fais malloc() avant ou initialise ton pointeur à 0.

ciao...
BruNews, MVP VC++
0
emmatopiak Messages postés 149 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 17 mai 2007 2
2 mai 2007 à 23:00
Salut,

On peut faire aussi, malgré la judicieuse explication de cs admin qui est bien:

#define INIT_CHAINE "SALUT"
 char * toto; toto = (char *)malloc((strlen(INIT_CHAINE)+1)*sizeof(char));
 strcpy(toto, INIT_CHAINE);

Ensuite là, tu peux faire ton realloc.

@++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
3 mai 2007 à 09:22
Cool la multiplication par 1...

Shell
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
3 mai 2007 à 11:53
Ca a l'avantage d'etre explicite et clair.
0
emmatopiak Messages postés 149 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 17 mai 2007 2
3 mai 2007 à 12:40
Salut,
Ben il repond plus, par contre je m'inquiete ( lol )
0