Seite 1 von 1

Woher kommt der Invalid indirection error

Verfasst: Sa Sep 05, 2020 3:14 pm
von Orioner
Folgender Code:

Code: Alles auswählen

extractedOil[i] += extractOil;
transportCapacity = tankWagonAmount[i] * tankWagonCapacity;

if (transportCapacity[i] <= extractedOil[i]) {
	if (sellAmount <= transportCapacity[i]) {
		extractedOil[i] -= sellAmount;
		playerMoney[playerNum] += sellAmount * oilPrice[gameRound]);
		amountAccepted = true;
	}
	else {
		extractedOil[i] -= transportCapacity[i];
		playerMoney[playerNum] += transportCapacity[i] * oilPrice[gameRound]);
		amountAccepted = true;
	}
}
else {
	if (sellAmount <= extractedOil[i]) {
		extractedOil[i] -= sellAmount;
		playerMoney[playerNum] += sellAmount * oilPrice[gameRound]);
		amountAccepted = true;
	}
	else {
		extractedOil[i] -= extractedOil[i];
		playerMoney[playerNum] += extractedOil[i] * oilPrice[gameRound]);
		amountAccepted = true;
	}
}
Bringt mir folgende Fehlermeldung:
Error E2062 main.c 238: Invalid indirection in function main
Und ich weiß nicht, wieso. Seht ihr was?
Zeile 238, das ist diese hier:

Code: Alles auswählen

if (transportCapacity[i] <= extractedOil[i]) {

Re: Woher kommt der Invalid indirection error

Verfasst: Sa Sep 05, 2020 3:37 pm
von nufan
In deinem Code-Ausschnitt sind die Deklarationen nicht ersichtlich, das macht es nicht ganz offensichtlich. Ich vermute aber, dass "transportCapacity" kein Array ist und deswegen keinen Index haben sollte:

Code: Alles auswählen

if (transportCapacity <= extractedOil[i]) {

Re: Woher kommt der Invalid indirection error

Verfasst: Sa Sep 05, 2020 6:55 pm
von Orioner
Jap, das war es. Danke, nufan. transportCapacity ist nicht als Array deklariert und zwar zurecht. Aber der Code verursacht noch eine andere Fehlermeldung, nämlich deshalb weil in der Zeile mit playerMoney vor dem Semikolon eine schließende, runde Klammer steht, die da nicht hingehört.