Char* make_img_name(void)

Résolu
goldziko9 Messages postés 39 Date d'inscription lundi 3 janvier 2005 Statut Membre Dernière intervention 5 avril 2010 - 16 sept. 2007 à 15:31
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 16 sept. 2007 à 19:30
Salut tout le monde!!


      voici mon probleme, je fait un simple porg de creation d'image avec saveugarde. l'image est seuvgarder dans une base avec un nom generé(c'est là le probleme). voila la function qui genere le nom :

char* make_img_name(void)
{
   char* chain = "img_"; //variable de nom
   time_t ptr;
   time(&ptr);
   char*okk = ctime(&ptr);
   char*ee = str_replace(' ','_',okk);
   char *kk = str_replace(':','-',ee);
   char*rr = str_replace('\n','_',kk);
   strcat(chain,rr);
   strcat(chain,"save.tmp");
   return chain;
}

cette fonction ne return aucun resulta et genere une erreur.

de l'aide svp !!

merci d'avance.

3 réponses

gamemonde Messages postés 336 Date d'inscription samedi 9 août 2003 Statut Membre Dernière intervention 9 juillet 2011 2
16 sept. 2007 à 15:37
tu retourne un pointeur qui n'existe plus.

void make_img_name(char *pNameOut)

serais mieux car tu auras initialisé deja ta variable avant l'appelle de la fonction.
3
acx01b Messages postés 280 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 8 juillet 2014 6
16 sept. 2007 à 19:29
salut

rajoute simplement un chain = strdup(chain);


avant le strcat(chain,rr);


en effet ta variable chain pointe vers une chaine de caractère constante qu'il ne faut pas essayer de modifier


et pense à faire les free là où c'est nécessaire ! (je te laisse trouver tout seul lesquels)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 sept. 2007 à 19:30
str_replace() sort d'où ??? sera encore une lib inutile, replace se fait avec 1 pointeur sans appel de fonction.
strcat(chain,rr); NON, on ne concat rien du tout sur une constante.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous