Avatar billede challenge Praktikant
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++.
Avatar billede challenge Praktikant
28. november 2008 - 14:49 #1
Alle fejl ligger i linie 10 ( int score[students]; )
Avatar billede bitmatic Nybegynder
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;
}
Avatar billede bitmatic Nybegynder
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;
}
Avatar billede challenge Praktikant
28. november 2008 - 15:03 #4
Smukt - smid gerne et svar :)

Er dette en ny tilføjelse siden min bog blev skrevet, eller er det blot en dårlig en af slagsen?
Avatar billede bitmatic Nybegynder
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.
Avatar billede bitmatic Nybegynder
28. november 2008 - 15:04 #6
:)
Avatar billede challenge Praktikant
28. november 2008 - 15:11 #7
Ok, mange tak for hjælpen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester