Hallo,
eine kurze Frage an die Experten hier...
Folgender Code:
Und test.txt:
Unabhängig von der Tatsache, dass man statt fscanf auch etwas anderes verwenden könnte, wieso wird denn in der Schleife scheinbar arr[1] überschrieben?
Es muss irgendwie an *char[] liegen, denn mit int[] funktioniert das ganze.
Danke falls jemand eine Erklärung kennt.
eine kurze Frage an die Experten hier...
Folgender Code:
Code:
#include <stdio.h>
int main()
{
FILE *file;
char *arr[10];
char buf[10];
int dec;
file = fopen("test.txt", "r");
while (fscanf(file, "%i %s", &dec, buf) == 2)
{
arr[dec] = buf;
printf("%d %s\n", dec, arr[dec]); // 1. Durchlauf: "1 eins"
// 2. Durchlauf: "2 zwei"
}
printf("1 %s\n", arr[1]); // "1 zwei" <-- wieso?
printf("2 %s\n", arr[2]); // "2 zwei"
return 0;
}
Und test.txt:
Code:
1 eins
2 zwei
Unabhängig von der Tatsache, dass man statt fscanf auch etwas anderes verwenden könnte, wieso wird denn in der Schleife scheinbar arr[1] überschrieben?
Es muss irgendwie an *char[] liegen, denn mit int[] funktioniert das ganze.
Danke falls jemand eine Erklärung kennt.