Permalänk
Medlem

C++, kodproblem!

Hejsan!
Sitter här och programmerar, sen när jag provar programmet får jag ett konstigt problem.

Jag kan skriva in alla tal utom de som är under 15, ni får kolla själva och jag hoppas och tror ni vet vad jag kan har glömt

#include <iostream> #include <string> using namespace std; int main() { int tickets = 0; string name = ""; string years = ""; int age = 0; int ordinary = 0; int young = 0; int pens = 0; string namesOrdnry[ordinary]; string namesYoung[young]; string namesPens[pens]; double pensTotal = 0; double ordinaryTotal = 0; double youthTotal = 0; cout << "Välkommen\n\nVänligen mata in kvällens ordinarie biljetterpris: "; cin >> tickets; while(name != "klar") { cin.ignore(); cout << "Besökarens namn: "; getline(cin, name); if(name == "klar") { break; } cout << name << "s alder: "; cin >> age; if(age >= 65) { pensTotal += tickets * 0.6; namesPens[pens] = name; pens++; } if(age <= 15) { youthTotal += tickets * 0.5; namesYoung[young] = name; young++; } else { ordinaryTotal += tickets; namesOrdnry[ordinary] = name; ordinary++; } } cout << "Resultat för kvällen: \nPensionärer: " << endl; for(int j = 0; j < pens; j++) { cout << namesPens[j] << "\n"; } cout << "Fullt betalande: " << endl; for(int k = 0; k < ordinary; k++) { cout << namesOrdnry[k] << "\n"; } cout << "Barn och Ungdom: " << endl; for(int m = 0; m < young; m++) { cout << namesYoung[m] << "\n"; } double total = youthTotal + pensTotal + ordinaryTotal; cout << "Kvällen inbringade totalt " << total << endl; return 0; }

MVH

Visa signatur

ATX: Intel Core i5 4690k | Asus Z97-A | MSI R9 390 8GB | 2x Corsair DDR3 2133Mhz | Crucial BX480Gb | Corsair TX650W | Fractal Design Define R4
mITX: Intel Core i3 6100 | Asus B150I | 2x8Gb Corsair DDR4 2133Mhz | Samsung 850 Evo 500GB | Cooler Master V750 | Fractal Design Define Nano S

Permalänk
Vila i frid

Ditt program skriver på icke-allokerade minnesadresser.

12: int ordinary = 0; 13: int young = 0; 14: int pens = 0; 15: string namesOrdnry[ordinary]; 16: string namesYoung[young]; 17: string namesPens[pens];

Ger följande komplieringsfel i vc++ 6:
biljett.cpp(15) : error C2057: expected constant expression
biljett.cpp(15) : error C2466: cannot allocate an array of constant size 0
biljett.cpp(15) : error C2133: 'namesOrdnry' : unknown size
biljett.cpp(16) : error C2057: expected constant expression
biljett.cpp(16) : error C2466: cannot allocate an array of constant size 0
biljett.cpp(16) : error C2133: 'namesYoung' : unknown size
biljett.cpp(17) : error C2057: expected constant expression
biljett.cpp(17) : error C2466: cannot allocate an array of constant size 0
biljett.cpp(17) : error C2133: 'namesPens' : unknown size

Permalänk
Medlem
Skrivet av hasenfrasen:

Ditt program skriver på icke-allokerade minnesadresser.

12: int ordinary = 0; 13: int young = 0; 14: int pens = 0; 15: string namesOrdnry[ordinary]; 16: string namesYoung[young]; 17: string namesPens[pens];

Ger följande komplieringsfel i vc++ 6:
biljett.cpp(15) : error C2057: expected constant expression
biljett.cpp(15) : error C2466: cannot allocate an array of constant size 0
biljett.cpp(15) : error C2133: 'namesOrdnry' : unknown size
biljett.cpp(16) : error C2057: expected constant expression
biljett.cpp(16) : error C2466: cannot allocate an array of constant size 0
biljett.cpp(16) : error C2133: 'namesYoung' : unknown size
biljett.cpp(17) : error C2057: expected constant expression
biljett.cpp(17) : error C2466: cannot allocate an array of constant size 0
biljett.cpp(17) : error C2133: 'namesPens' : unknown size

ah, tack så mycket Får väl kanske använda VC++ när man väl har det istället för Codeblocks

Är så van vid Java och inte van vid minnesallokering och liknande

Visa signatur

ATX: Intel Core i5 4690k | Asus Z97-A | MSI R9 390 8GB | 2x Corsair DDR3 2133Mhz | Crucial BX480Gb | Corsair TX650W | Fractal Design Define R4
mITX: Intel Core i3 6100 | Asus B150I | 2x8Gb Corsair DDR4 2133Mhz | Samsung 850 Evo 500GB | Cooler Master V750 | Fractal Design Define Nano S

Permalänk
Medlem

Du kan väl använda VC++ kompilatorn i Codeblocks ?
mingw, g++ o.s.v. borde ha gett liknande felmeddelande.

Visa signatur

citera!

Permalänk
Medlem
Skrivet av Dosshell:

Du kan väl använda VC++ kompilatorn i Codeblocks ?
mingw, g++ o.s.v. borde ha gett liknande felmeddelande.

vet faktiskt inte. Inte så insatt i codeblocks

Visa signatur

ATX: Intel Core i5 4690k | Asus Z97-A | MSI R9 390 8GB | 2x Corsair DDR3 2133Mhz | Crucial BX480Gb | Corsair TX650W | Fractal Design Define R4
mITX: Intel Core i3 6100 | Asus B150I | 2x8Gb Corsair DDR4 2133Mhz | Samsung 850 Evo 500GB | Cooler Master V750 | Fractal Design Define Nano S

Permalänk
Medlem

Gör dig själv en tjänst och använd std::vector istället.