Langage C// erreur de segmentation
Fermé
cedji
-
10 janv. 2009 à 11:21
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 10 janv. 2009 à 23:04
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 10 janv. 2009 à 23:04
A voir également:
- Langage C// erreur de segmentation
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Langage binaire - Guide
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur vidéo freebox ✓ - Forum TV & Vidéo
4 réponses
chuka
Messages postés
965
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
378
10 janv. 2009 à 14:24
10 janv. 2009 à 14:24
Salut,
je comprends pas pourquoi tu mets le dans la fonction void CalculBinaire (int a, int*t, int*n) un argument int *n....
et en effet cet affectation te retournera un segment fault...
t=(int*)malloc(n*sizeof(int)); (Que vaut n???)
Voici le code qui devrait fonctionner...
J'espere ca pourras t'aider!!!
@+
je comprends pas pourquoi tu mets le dans la fonction void CalculBinaire (int a, int*t, int*n) un argument int *n....
et en effet cet affectation te retournera un segment fault...
t=(int*)malloc(n*sizeof(int)); (Que vaut n???)
Voici le code qui devrait fonctionner...
J'espere ca pourras t'aider!!!
@+
#include<stdio.h> #include<math.h> #include<stdlib.h> int CalculBinaire (int a, int*t) { int b; int nb=0; while (a>0) { b=a/2; if(a%2==0) { t[nb]=0; nb++; } else { t[nb]=1; nb++; } a=b; } return nb; } void Afficher (int*t,int n) { printf("\n En codage binaire, on a:\n"); while(n>=0) { printf("%d",t[n]); n--; } } int main () { int a; int t[255]; int n; printf("Veuillez saisir le nombre que vous voulez afficher en codage binaire:"); scanf("%d",&a); n=CalculBinaire(a,t); Afficher(t,n); getchar(); return 0; }
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
10 janv. 2009 à 17:18
10 janv. 2009 à 17:18
Salut,
C'est dommage aussi d'utiliser un tableau d'int alors qu'un tableau de char ferait largement l'affaire.
C'est dommage aussi d'utiliser un tableau d'int alors qu'un tableau de char ferait largement l'affaire.
chuka
Messages postés
965
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
378
10 janv. 2009 à 22:32
10 janv. 2009 à 22:32
Salut,
C'est vrai.....avec un truc dans ce genre, plus besoin de tableau et tout le tralala....
@+
C'est vrai.....avec un truc dans ce genre, plus besoin de tableau et tout le tralala....
void CalculBinaire (int a) { printf("\n En codage binaire, on a:\n"); int b; int nb=8; while (nb>0) { b=a&0xFF; b=b>>7; printf("%d",b); a=a<<1; nb--; } }
@+
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
10 janv. 2009 à 22:42
10 janv. 2009 à 22:42
Salut,
Autre version
et pour conversion binaire vers décimal
Autre version
void dec2bin(char *bin,int nb){ int i,j,k,tmp; for(i=0;nb != 0;nb >>= 1){ if(nb & 01) bin[i++] = '1'; else bin[i++] = '0'; } bin[i]='\0'; for(j=0,k=i-1;j<k;++j,--k){ tmp=bin[j]; bin[j]=bin[k]; bin[k]=tmp; } }
et pour conversion binaire vers décimal
unsigned bin2dec(char *bin){ int i,j; unsigned dec; for(i=0;bin[i] != '\0';++i) ; for(j=0,dec=0;j<i;++j) dec = dec + ((bin[j] - '0') << (i-j-1)); return dec; }
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
10 janv. 2009 à 22:54
10 janv. 2009 à 22:54
for(i=0;bin[i] != '\0';++i) ;
T'avais la flemme décrire strlen ? ^^
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
10 janv. 2009 à 22:58
10 janv. 2009 à 22:58
Salut,
Non, mais j'avais la flemme d'écrire #include <string.h> ;-DDD
Non, mais j'avais la flemme d'écrire #include <string.h> ;-DDD
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
10 janv. 2009 à 23:04
10 janv. 2009 à 23:04
Fainéant :d