Décomposer un entier dans tableau
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 :
Code:
Tableau[i]=int(Valeur/(Puissance(10, Nombre_De_Decimale));
Il me semble qu'on ne peut pas faire d'allocation dans une fonction ? Ce pourquoi j'ai une erreur.
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:
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);
}
} |