Aide à la programmation [Résolu]

Signaler
Messages postés
7
Date d'inscription
dimanche 8 février 2009
Statut
Membre
Dernière intervention
4 mars 2009
-
Messages postés
7
Date d'inscription
dimanche 8 février 2009
Statut
Membre
Dernière intervention
4 mars 2009
-
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

Messages postés
9
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
14 février 2009

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 !
Messages postés
7
Date d'inscription
dimanche 8 février 2009
Statut
Membre
Dernière intervention
4 mars 2009

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
Messages postés
402
Date d'inscription
mardi 1 mai 2001
Statut
Membre
Dernière intervention
15 août 2011

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 ::.)~
Messages postés
7
Date d'inscription
dimanche 8 février 2009
Statut
Membre
Dernière intervention
4 mars 2009

merci beaucoup j'y vois un peu plus clair

titi
Messages postés
123
Date d'inscription
samedi 14 juillet 2007
Statut
Membre
Dernière intervention
29 mars 2009
1
> malloc et calloc, quelle est la différence entre les deux?

Et Google, connais pas ?

La doc, tu ne lis pas ?
Messages postés
7
Date d'inscription
dimanche 8 février 2009
Statut
Membre
Dernière intervention
4 mars 2009

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
Messages postés
7
Date d'inscription
dimanche 8 février 2009
Statut
Membre
Dernière intervention
4 mars 2009

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!
Messages postés
9
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
14 février 2009

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.
Messages postés
7
Date d'inscription
dimanche 8 février 2009
Statut
Membre
Dernière intervention
4 mars 2009

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.