Woher kommt der Invalid indirection error

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Orioner
Beiträge: 102
Registriert: Mo Dez 10, 2012 10:52 am

Woher kommt der Invalid indirection error

Beitrag von Orioner » Sa Sep 05, 2020 3:14 pm

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]) {

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Woher kommt der Invalid indirection error

Beitrag von nufan » Sa Sep 05, 2020 3:37 pm

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]) {

Orioner
Beiträge: 102
Registriert: Mo Dez 10, 2012 10:52 am

Re: Woher kommt der Invalid indirection error

Beitrag von Orioner » Sa Sep 05, 2020 6:55 pm

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.

Antworten