error: invalid types ‘int[int]’ for array subscript



  • Ich habe einen einfachen Code geschrieben:

    int ASN180[][Constants::numberOfASNAttributes] = {	{4,5,4,7,2,3,4,10,4,4,6,7,2,3,2,6,4,7,9,3,4},
    						{8,6,8,2,2,10,3,6,3,4,4,7,5,5,4,6,1,4,3,6,3},
    						{3,8,2,3,5,2,5,9,6,8,12,5,3,2,4,4,4,2,3,7,3},
    ...
    {4,7,4,5,5,4,4,2,9,6,2,3,5,6,4,3,5,8,6,4,4},
    						{3,6,4,6,4,3,7,7,6,5,10,1,9,4,3,5,6,2,0,4,5} };
    
    int rowCnt = 0;
    	for( int j = 0; j < Constants::numberOfDays; ++j ) {
    		for( int i = 0; i < Constants::number30MinIntervals; ++i ) {
    			for( int k = 0; k < Constants::numberOfASNAttributes; ++k ) {
    				so.asn180Matrix[i][j][k] = ASN180[rowCnt][k]; <-- das ist Zeile 497
    				rowCnt++;
    			}
    		}
    	}
    

    Es handelt sich um einen Testcase für Unit-Testing. Ich erhalte folgenden Fehler, wenn ich das Zeug kompilieren will

    make -f makefile2
    g++ -Igtest-1.5.0/include -lgsl -g -Wall -Wextra -c ./LogLikelihoodRatioTest.cpp
    ./LogLikelihoodRatioTest.cpp: In member function ‘virtual void StatisticsObject_updateASN7DayMatrix_Test::TestBody()’:
    ./LogLikelihoodRatioTest.cpp:497: error: invalid types ‘int[int]’ for array subscript
    make: *** [LogLikelihoodRatioTest.o] Error 1

    Was mache ich falsch?



  • Hoppla, auf der linken Seite der Gleichung ist ein zweidimmensionales Array. Ich habe da ausversehen mich in der Variable geirrt. Konzentrationsfehler. Danke fürs Lesen.



  • Stehen die drei Punkte da in echt auch? Ich hoffe nicht...
    Kann deine Konstanten nicht ganz nachvollziehen. Hast du schonmal versucht, das Array aufzudröseln. Also erstmal kleine, feste Werte reinschreiben, probieren und dich dann deinem Code anzunähern. Mag sein, dass hier nur ne Dimension falsch ist.



  • Hat sich doch schon geklärt.



  • Synchronblog 😉


Anmelden zum Antworten