Fehlermeldung in Vers. 1.8.10

Der Fehler scheint in der Library zu liegen. Sowas elementares sollte da eigentlich nicht falsch sein.

Der Zeiger hat da schon seinen Sinn. Man soll auf die Variable von außen zugreifen können um festzustellen was die Funktion gemacht hat. Wenn du das also als Wert übergibst kannst du dir den Parameter gleich sparen. Änderungen innerhalb der Funktion bekommst du außerhalb nicht mit.

Was auch nicht schön ist: ok wird in der Funktion nie auf true gesetzt. Statt dessen verlässt man sich darauf dass der Anwender richtig initialisiert.

Es gibt zwei Wege das auszubessern:

1.) Man dereferenziert den Zeiger korrekt, bevor man was zuweist:

*ok = false;

So ändern man das worauf der Zeiger zeigt. Und nicht den Zeiger selbst

2.) Man macht eine Referenz daraus:

int parseHex(String &s, int start, int end, bool& ok)

Dann muss man nichts dereferenzieren. Und bei der Übergabe muss man nicht explizit die Adresse mit & übergeben