je suis débutante en C .Dans mon exercice td on me demande d'écrire’une fonction qui retourne à chaque invocation une chaıne de caractères différente,par exemple en vue de l’utiliser comme un nom de fichier temporaire.
MON PROF NOUS A TRANSMIS CE CODE QUE JE COMPRENDS PAS ET J'AIMERAI BIEN LE COMPRENDRE
#define PREFIX « tmp »
#define NBCHIFFRES 5
int i ;
char * mktmp(void){
char *nom,*p;
nom = malloc ((NBCHIFFRES + PREFIXET+1)*sizeof(*nom)) ;
for(int i = 0 ; i < PREFIXET ; i++){
*nom = PREFIX[i] ;
nom++ ;
}
for(int i = 0 ; i < NBCHIFFRES ; i++){
*nom = ‘0’ + x%10 ;
x/=10 ;
nom++
}
essai ++ ;
*nom = ‘\0’;
return p ;
}
1/ Je comprends pas la logique en gros
2/ pourquoi x%10? pour quelle raison?
3/malloc je sais c'est allocation dynamque pour demander de l'espace mémoire mais je vois pas son utilité dans ce code et dans quel cas je serai l'utiliser .
Si ce code vient de ton prof, il va devoir retourner lui-même sur les bancs.
Le monde est foutu...
la constante PREFIXET n'est pas définie non-plus. Le i global serait plutôt le x qui doit définir la valeur à mettre dans le nom de fichier ?
Il est plutôt risqué d'avoir une variable i qui se balade dans un programme, i est, par convention, utilisé pour les itérations de boucles (avec les suivantes j, k , l...). Je suis d'ailleurs surpris que sa re-déclaration au sein des boucle ne fasse pas tilter le compilo...
Sinon un bête sprintf() ferait le boulot sur une ligne :
sprintf(nom, "%s%d", PREFIX, x);
Je sais que les exercices sur les bases sont importants, mais bon, connaître les outils existants fait aussi parti du boulot, on apprend à un plombier comment souder proprement, pas à fabriquer un poste à souder. Surtout si le prof ne sait pas lui-même fabriquer proprement ledit poste.
Quand je vois des codes comme ça écrits par des "profs" ça fait vraiment peur.
compréhension code C
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Bonhomme !! | Jeu de plateforme : Prototype.