j'ai écrit un programme utilisant le concept suivant:passe par adresse, scanf, de-référencement
Je crée un entier x
passe par adresse à une fonction, avec un nom de fichier, ladite fonction ouvre le fichier si elle est disponible, balaye la première ligne et définit la valeur que pX
points égal à la ligne analysée.
Seulement ça ne marche pas, et je ne vois pas ce que je fais de mal. Pour autant que je peux dire le code ci-dessous est généralement comment on pourrait l'accomplir, mais je ne suis pas sûr si je n'utilise pas scanf()
correctement avec le pointeur ou quoi.
void foo() {
char input[20] = "test.txt";
int x = 1;
bar(input, &x);
}
void bar(char *fileName, int *pX) {
FILE *fp = fopen(fileName, "r");
char *buffer = malloc(15 * sizeof(int));
fgets(buffer, 15, fp);
scanf(buffer, "%d", *pX);
free(buffer);
fclose(fp);
}
La fonction 'scanf' veut des pointeurs pour les arguments. 'pX' est un pointeur. '* pX' n'est * pas * un pointeur. –
'scanf (buffer,"% d ", * pX);' .... que dit le compilateur? –
@SouravGhosh compile. – wanderbread