Aide à la programmation

Résolu
jsuititidu27 Messages postés 7 Date d'inscription dimanche 8 février 2009 Statut Membre Dernière intervention 4 mars 2009 - 12 févr. 2009 à 17:58
jsuititidu27 Messages postés 7 Date d'inscription dimanche 8 février 2009 Statut Membre Dernière intervention 4 mars 2009 - 16 févr. 2009 à 19:13
Bonjour à tous,

j'ai débuté une formation de programmation C et C++. j'en suis à l'apprentissage du langage C mais j'éprouve quelques difficultés sur certains thèmes et je souhaitais savoir si parmi vous quelqu'un pourrait consacrer un peu de son temps pour m'aider.

je vous en remercie d'avance

9 réponses

Nykozoft Messages postés 9 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 14 février 2009
12 févr. 2009 à 18:11
Bonjour et bienvenue sur codes-sources,
Pour répondre à ta question, c'est précisément le but de ce forum : aider les personnes en difficulté.
Poste un message si tu as un problème particulier !
jsuititidu27 Messages postés 7 Date d'inscription dimanche 8 février 2009 Statut Membre Dernière intervention 4 mars 2009
12 févr. 2009 à 19:48
J'aurai une question qui porte instructions malloc et calloc, quelle est la différence entre les deux?

au passage je sais la fonction de malloc et free.

Merci pour vos explications
NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011
12 févr. 2009 à 22:06
malloc() te permet d'obtenir un espace mémoire de la taille désiré
calloc() fait la même chose mais en initialisant cet espace à zéro (met des 0 du début à la fin), ce que malloc() ne fait pas

void* malloc(size_t size);void* calloc(size_t num, size_t size); num nombre d'élément, size taille des éléments

int* tableau = calloc(5, sizeof(int)); // un tableau de 5 int qui sera initialisé à zéro

calloc() est l'équivalent d'un malloc() et d'un memset(), ex:

int* tableau = malloc(5 * sizeof(int));
memset(tableau, 0, 5 * sizeof(int)); // initialise à zéro

~(.:: NitRic ::.)~
jsuititidu27 Messages postés 7 Date d'inscription dimanche 8 février 2009 Statut Membre Dernière intervention 4 mars 2009
12 févr. 2009 à 22:38
merci beaucoup j'y vois un peu plus clair

titi

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

Posez votre question
jeffy131 Messages postés 123 Date d'inscription samedi 14 juillet 2007 Statut Membre Dernière intervention 29 mars 2009 1
14 févr. 2009 à 08:14
> malloc et calloc, quelle est la différence entre les deux?

Et Google, connais pas ?

La doc, tu ne lis pas ?
jsuititidu27 Messages postés 7 Date d'inscription dimanche 8 février 2009 Statut Membre Dernière intervention 4 mars 2009
14 févr. 2009 à 10:52
salut monsieur superman, toi ki comprend tt du premier coup! J'apprend à programmer sans lire de livre, sans avoir de cours... si c pour poster des commentaires comme ça, change de forum
jsuititidu27 Messages postés 7 Date d'inscription dimanche 8 février 2009 Statut Membre Dernière intervention 4 mars 2009
15 févr. 2009 à 21:09
Bonjour à tous,

Je souhaiterais un peu d'aide concernant un exo que j'ai à faire. C'est un programme qui doit traduire un nombre en base 16 (ça j'ai compris le principe de l'hexadécimal). Le prof veut qu'on utilise un tableau de char et faire une série de division successive jsuqu'a quotient nul afin de trouver le chiffre  en hexadécimal. Bon j'ai commencé mon code mais selon vous est-il une bonne chose de faire le procéder par divisions, car moi dans mon programme je bloque là.

Merci à celui ou celle qui me donnera quelque explications car comme je le disais je bloque sur l'hexadécimal alors que pour la conversion de nombre en base 2 ca ma poser aucun prob!
Nykozoft Messages postés 9 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 14 février 2009
15 févr. 2009 à 22:55
pour calculer un nombre dans une base, la méthode la plus efficace est la méthode des divisons successives.
Le principe est de diviser le nombre par la base (2 si binaire, 10 si décimal, 16 hexadécimal), puis de diviser le quotient de la division précédente par la base.
jusqu'à ce que tu obtiennes un quotient de 0. Il faut alors lire les restes dans le sens inverse.

Ex : 230 en binaire ? : 11100110
-binaire :
230/2= 115*2+ 0 ; 
115/2 = 57*2 + 1;
57/2 = 28*2 + 1 ;
28/2 = 14*2 +0;
14/2 = 7*2 + 0 ;
7/2 = 3*2 +1;
3/2 = 1*2 + 1 ;
1/2 = 0*2 +1;
(0/2 = 0 )on lit de bas en haut

bref, tu fais la même chose en hexa : E7
231/16 = 16*14 + 7 ;
14/16 = 0 + 14;  14 ––> E
(0/16 = 0);

Il y a des opérateurs en C pour obtenir le reste d'une divison : %
et / pour obtenir le quotient.
jsuititidu27 Messages postés 7 Date d'inscription dimanche 8 février 2009 Statut Membre Dernière intervention 4 mars 2009
16 févr. 2009 à 19:13
salut! merci des explications. j'ai un peu avancer sur mon code source (que je peux te montrer d'ailleurs si tu veux. mais je but sur un problème tjr de l'exo. le prof me demande : utiliser un tableau char (ça ok g pigé) car en hexa il y a les chiffes de 0 à 9 et les lettres A à F (g ossi pigé ça. ensuite si le reste est inférieur à 10 je le place dans les caractères compris entre 0 à 9 et s'il est sup. ou égal à 10 je le place dans le tableau des caractères compris entre A et F. mais là je cale, je ne sais pas quel instruction employer pour arriver à placer ma valeur, peut être un pointeur? enfin jsai pa trop. si tu pourrai encore m'aider s'il te plait.
Rejoignez-nous