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 !
3
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
0
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 ::.)~
0
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
0

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 ?
0
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
0
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!
0
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.
0
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.
0