Bonsoir,
Je souhaite décomposer un entier dans un tableau. Par exemple j'envoie 3896 à une fonction et elle me retourne le tableau avec
tableau[0]=6
tableau[1]=9
tableau[2]=8
tableau[3]=3
Le code ne compile pas. Il me dit qu'il y a une erreur à la ligne :
Il me semble qu'on ne peut pas faire d'allocation dans une fonction ? Ce pourquoi j'ai une erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Tableau[i]=int(Valeur/(Puissance(10, Nombre_De_Decimale));
Donc ma question est, comment passer un paramètre un tableau dont on ne connait pas encore la taille si jamais l'erreur provient bien de là ?
Merci d'avance.
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 #include<stdio.h> #include<stdlib.h> //#include "./../../bibliotheque.h" void Entier_Dans_Tableau( int Valeur, int *Tableau ); int Puissance( int Digit, int Exposant ); int main() { int Valeur=2386; int *tableau; Entier_Dans_Tableau( Valeur, tableau ); int i; for ( i=0 ; i<4 ; i++ ) { printf( "Tableau[%d] : %d", i, tableau[i] ); } } int Puissance( int Digit, int Exposant ) { int i=0; int Resultat=1; if ( Exposant != 0 ) { while ( i != Exposant ) { Resultat=Resultat*Digit; i++; } } if ( Exposant==0 ) { Resultat=1; } return Resultat; } void Entier_Dans_Tableau( int Valeur, int *Tableau ) { int N=1; int A=0; int Nombre_De_Decimale=-1; while ( A>9 ) { A=Valeur/N; N=10*N; Nombre_De_Decimale++; } Tableau=malloc(Nombre_De_Decimale*sizeof(int)); int i; for ( i=(Nombre_De_Decimale-1) ; i>=0 ; i-- ) { Tableau[i]=int(Valeur/(Puissance(10, Nombre_De_Decimale)); Valeur=Valeur-Tableau[i]*Puissance(10, Nombre_De_Decimale); } }
Partager