Bonjour,

C'est la première fois que je post sur le forum, mais je le parcours depuis longtemps.

Je vous explique mon problème :

J'ai un tableau et j'aimerais avoir une fonction qu'y renverser les valeurs du tableau. Voici la fonction :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int* renverser(int tab[], int nb_elements)
{
    int buffer,
        i,a,z;
 
    for(i=0; i<nb_elements/2; i++)
    {
        buffer = tab[i];
        tab[i] = tab[nb_elements-i-1];
        tab[nb_elements-i-1] = buffer;
    }
 
    return tab;
}
Voici l'appel dans le main :

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
int main(void)
{
    [...]
    int* renverser(int tab[], int nb_elements);
    [...]
    int tab_test[1] = {4}; // test avec le nombre 4
    int* tab_test_bin;
 
    tab_test_bin = malloc(3*sizeof(int)); 
    // converti 4 en binaire 0 0 1 et le rentre dans un tableau
    tab_test_bin = decimal_a_binaire(tab_test[1],3); 
    // renverse le tableau 0 0 1 => 1 0 0
    tab_test_bin = renverser(tab_test_bin, 3);
    [...]
}
Je fais un printf de mon tableau et il me sort des bonnes valeurs après decimal_a_binaire, mais après renverser, il me sort des nombres aléatoire :
0 0 1 => renverser => 16852369 0 1

Quelqu'un voit d'où vient le problème ?

Arget