Array memset notwendig?

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Array memset notwendig?
Hey ich mal wieder^^
Meine Frage bezieht sich auf diesen Testcase: testsuite/correct/t01.e

int main()
{
	int [4]x;

	x[2] := 3;
    return x[0] + x[1] + x[3] - x[2];
}

Wenn das funktionieren soll, müssen alle Arrays mit 0 initialisiert werden.
Ein äquivalentes C Programm geht da bei mir nämlich auch kaputt.
Allerdings steht nicht in der Sprachenbeschreibung, dass lokale Arrays mit 0 initialisiert werden. Oder übersehe ich da was?


Ja, dieser Testcase hat undefiniertes Verhalten, bzw. ist im Sprachstandard nicht
definiert, wie funktionslokale Arrays vorbesetzt sind.

ich werde das noch fixen…

1 „Gefällt mir“

Sehr schön. Wirst du auch den Fix fixen? Zuweisung in E braucht nen Doppelpunkt.


-1 kann man auch nicht direkt zuweisen.


m(

Ist gefixt.


Hey.
Die t01.e hat auch dieses undefined behavior.


Unäres Minus sorgt halt für mehr Implementierungsaufwand ohne zusätzlichen Lerneffekt. Da ist [m]foo := 0 - 1[/m] IHMO ein verschmerzbares Übel.


Das bezog sich auf den Testcase der committet wurde. Dieser hatte die -1 Zuweisung und deswegen
wurde er nicht kompiliert.