28. november 2008 - 14:48
Der er
6 kommentarer og 1 løsning
Array-længde vha. int
Hvorfor vil dette ikke virke? #include <cstdlib> #include <iostream> using namespace std; int main() { int students = 50, i; int score[students]; for(i = 0; i < students; i++) { score[i] = i + 1; std::cout << score[i] << std::endl; } system("PAUSE"); return 0; } error C2057: expected constant expression error C2466: cannot allocate an array of constant size 0 error C2133: 'score' : unknown size Jeg har slået alle disse op, men kan intet finde. Kildekoden stammer fra en bog om C++.
Annonceindlæg fra Computerworld it-jobbank
28. november 2008 - 14:59
#2
#include <cstdlib> #include <iostream> using namespace std; int main() { int students = 50, i; int* score = new int[students]; for(i = 0; i < students; i++) { score[i] = i + 1; std::cout << score[i] << std::endl; } system("PAUSE"); delete[] score; return 0; }
28. november 2008 - 15:02
#3
Eller: #include <cstdlib> #include <iostream> using namespace std; int main() { const int students = 50; int score[students]; for(int i = 0; i < students; i++) { score[i] = i + 1; std::cout << score[i] << std::endl; } system("PAUSE"); return 0; }
28. november 2008 - 15:04
#5
Problemet er (som kompileren også siger) at "students" skal være en konstant, hvis du vil bruge array initialisering på den måde du gør det her.