Salut a tous. J'ai fait du code C mais lors de la compilation j'ai une erreur : "Erreur de segmentation (core dumped)". Je ne sais malheureusement pas d'ou cela viens. Voici le code :
#include <stdio.h>
int str_size(char *str) {
int size = 0;
for (int i = 0 ; str[i] != '\0' ; i++) {
size++;
}
return (size);
}
int find_char(char c, char *str) {
int place = 0;
for (int i = 0 ; str[i] != '\0' ; i++) {
if (c == str[i]) {
place = i;
}
}
return (place);
}
char *convert_dec_to_base(int n, char *base) {
char n_based[64];
char converted_b[64];
for (int i = 0 ; n != 0 ; i++) {
n_based[i] = base[n % str_size(base)];
n /= str_size(base);
}
for (int i = 0 ; i < str_size(n_based) ; i++) {
converted_b[str_size(n_based) - i - 1] = n_based[i];
}
return (converted_b);
}
int main(void) {
char *t = convert_dec_to_base(32, "0123456789ABCDEF");
printf("%c\n", t[1]);
return (0);
}
Ce code est fait pour convertir un nombre décimal en une base donnée. le retour est censé être un char* donnant le nombre convertit.
Sujet résolue l'erreur venait de la ligne : char converted_n[64]; je l'ai transformer en char *converted_n = malloc(64);
La tradition de C est souvent d'écrire du code qui va vous sauter à la tronche.
- Edité par michelbillaud 28 juin 2020 à 11:17:04
core dumped lors de la compilation
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
git is great because Linus did it, mercurial is better because he didn't.