jsuititidu27
Messages postés7Date d'inscriptiondimanche 8 février 2009StatutMembreDernière intervention 4 mars 2009
-
12 févr. 2009 à 17:58
jsuititidu27
Messages postés7Date d'inscriptiondimanche 8 février 2009StatutMembreDerniè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.
Nykozoft
Messages postés9Date d'inscriptionjeudi 15 mai 2008StatutMembreDernière intervention14 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 !
NitRic
Messages postés402Date d'inscriptionmardi 1 mai 2001StatutMembreDernière intervention15 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:
jsuititidu27
Messages postés7Date d'inscriptiondimanche 8 février 2009StatutMembreDerniè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és7Date d'inscriptiondimanche 8 février 2009StatutMembreDerniè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és9Date d'inscriptionjeudi 15 mai 2008StatutMembreDernière intervention14 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és7Date d'inscriptiondimanche 8 février 2009StatutMembreDerniè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.