Permalänk

C problem - VÄLDIGT basic

Precis börjat med C i skolan och har därför inte kommit speciellt långt. Så garva inte åt min fråga!

men koden ser ut så här..

void drawPiles(int a, int b){
int hogar[b];
clrscr();
cout << a << "\n" << b;
}

void slumpa(){
int sticks, piles;
randomize();
sticks=random(50)+1;
randomize();
piles=random(10)+1;

drawPiles(sticks,piles);
}

Det den gör är att slumpa fram två tal i funktionen slumpa() sedan ska den, när jag listat ut hur, dela upp "sticks" lite ojämt i de olika högarna.

Mitt problem nu är att hogar[b] inte accepteras av kompilatorn. Den säger att listan måste ha ett fast värde..

Är det så? eller kan man kommer runt detta på något smidigt sätt?

Permalänk
Medlem

Japp, fält måste initieras med CONST värden, ifall du inte använder dynamisk skapning av dem.

Ett alternativ kan vara att använda vector (vector.h)
Som fungerar som jag tror att du vill

Visa signatur

Peter Löfås <plo@alternativet.nu>
Linköpings Tekniska Högskola (Y-Linjen)

Permalänk
Medlem

Detta skulle nog funka:

int *hogar = (int *)malloc(b*sizeof(int));

Däremot kanske inte pekare och dynamisk allokering är nåt för nybörjare.
Kom ihåg att köra en free() för varje malloc().

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av petlof
Japp, fält måste initieras med CONST värden, ifall du inte använder dynamisk skapning av dem.

Ett alternativ kan vara att använda vector (vector.h)
Som fungerar som jag tror att du vill

Vector är c++. Och "#include <vector>" ska det vara om man ändå vill använda den.

Visa signatur

Daniel

Permalänk
Medlem

Re: C problem - VÄLDIGT basic

Citat:

Ursprungligen inskrivet av Darkrebel
Precis börjat med C i skolan och har därför inte kommit speciellt långt. Så garva inte åt min fråga!

Hi,hi,hi Jag tyckte ditt ämnesval var ganska kul. "C problem - väldigt BASIC"

Visa signatur

www.filipsprogram.tk - lite freeware
"Delight, herregud. Talang är bara förnamnet."