Bonjour à tous,

je débute en C que j'utilise uniquement pour tester mes algorithmes dans le cadre de mes études et j'ai un problème avec les fonctions:

Pour un exercice je cherche à lire une valeur au clavier et l'enregistrer dans un tableau que j'initialise via une fonction.
Mon problème c'est que quand j'utilise ma valeur lue au clavier mon code ne fonctionne pas mais si je supprime ma lecture en donnant une valeur à ma variable le code fonctionne.


Pouvez vous m'aider ou m'expliquer pourquoi mon code ne fonctionne pas si je veux encoder une nouvelle valeur via un scanf.

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
 
#include <stdio.h>
#include <stdlib.h>
#define TAILLE_TAB 10
 
/*
 * 
 */
 
void init(int valeur, int *tab, int taille) {
    int compteur;
    for (compteur = 0; compteur < taille; compteur++) {
        tab[compteur] = valeur;
    }
}
 
void afficherTableau(int *tab, int taille) {
    int compteur;
    for (compteur = 0; compteur < taille; compteur++) {
        printf("%3d ", tab[compteur]);
    }
    printf("\n");
}
 
int main(int argc, char** argv) {
 
char MSG_ACCUEIL[255] = "Endodez une valeur: ";
int val;
// int val = 1;  // avec une valeur fixe le code fonctionne si je supprime le scanf("%d", val); après
int tab[TAILLE_TAB];
 
printf("%s", MSG_ACCUEIL);
scanf("%d", val);
init(val, tab, TAILLE_TAB);
 
afficherTableau(tab, TAILLE_TAB);
 
return (EXIT_SUCCESS);
}