Hallo,
ich habe ein merkwürdiges Absturzverhalten:
Gegeben ist eine Funktion in der der folgende Code enthalten ist:
1 | Funktion1()
|
2 | {
|
3 | ...diverser Code...
|
4 |
|
5 | uint8_t array[6] = {0};
|
6 | sscanf(Struktur.Eintrag_eins, "%X:%X:%X:%X:%X:%X", (uint *) &array[0], (uint *) &array[1], (uint *) &array[2], (uint *) &array[3], (uint *) &array[4], (uint *) &array[5]);
|
7 |
|
8 | for (uint8_t i = 0; i < 6; i++)
|
9 | {
|
10 | Struktur.Eintrag_zwei[i] = array[i];
|
11 | }
|
12 | }
|
Nun kommt der detaillierte Code an weiteren Stellen auch vor und daher
habe ich ihn in eine Funktion gepackt, d.h.
1 | void Funktion2(void)
|
2 | {
|
3 | uint8_t array[6] = {0};
|
4 | sscanf(Struktur.Eintrag_eins, "%X:%X:%X:%X:%X:%X", (uint *) &array[0], (uint *) &array[1], (uint *) &array[2], (uint *) &array[3], (uint *) &array[4], (uint *) &array[5]);
|
5 |
|
6 | for (uint8_t i = 0; i < 6; i++)
|
7 | {
|
8 | Struktur.Eintrag_zwei[i] = array[i];
|
9 | }
|
10 |
|
11 | }
|
und folgend:
1 | Funktion1()
|
2 | {
|
3 | ...diverser Code...
|
4 | Funktion2();
|
5 | }
|
Ich möchte also eigentlich nur substituieren, weil das an mehreren
Stellen vorkommt, doch nun führt das plötzlich zu Abstürzen.
Bei der Struktur handelt es sich um eine globale Variable.
Jemand eine Idee, warum das so nicht funktioniert?