Bonjour à tous,
Dans le cadre d'un projet pour mes études, je dois créer ma propre commande tar. Pour ce faire, j'ai besoin de convertir un entier en date.
J'ai le nombre de seconde depuis le 1 janvier 1970 (timestamp) en char* et en octal que je converti ensuite en long long et en décimal. Je transforme ensuite ce nombre de type long long en date à l'aide de la fonction ctime mais je reçois à chaque fois une erreur de type "malloc() : memory corruption".
Ci-dessous se trouve le code, si quelqu'un a une idée sur la provenance de l'erreur ou une amélioration de mon code, je suis preneuse
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 //Convertir un octal en décimal (char* --> long long) long long octalToLongDecimal(char* octalNumber) { long long decimal = 0; int iterator = 0; long long octal = atoll(octalNumber); while(iterator < 12) { decimal = decimal + (octal % 10) * pow(8,iterator++); octal = octal/10; } return decimal; } char* getDate(char mtime[12]) { long long seconds = octalToLongDecimal(mtime); time_t time = (time_t)seconds; char *p = ctime(&time); return p; }
Partager