webForumDet fria alternativet

Skapa variabelt antal struct

3 svar · 227 visningar · startad av SDCd

SDCdMedlem sedan jan. 2001795 inlägg
#1

Har ett program där jag skulle vilja läsa in ett tal från en fil och sedan skapa en array med motsvarande antal structs.
Problemet som uppstår är att kompilatorn förväntar sig en konstant.
Finns det någon fiffig lösning på detta?

SDCdMedlem sedan jan. 2001795 inlägg
#2

Börjar bli lite trött i mössan :)

Löste det på följande sätt.

struct Person
{
	char namn[20];
	bool ledig[9];
};

Person *Array =  new Person[antal];

Kan det tänkas vara på rätt väg?

Marcus EMedlem sedan maj 20021 466 inlägg
#3

Kompilatorn förväntar sig bara en konstant om du allokerar minne på stacken eller i det globala utrymmet. Om du allokerar minnet på heapen går det bättre.

Exempel:

struct CStruct {innehåll};

int count = readnumber();
CStruct *ptr = new CStruct[count];

// Tilldela ett värde
ptr[nummer].variabel = någonting;
SDCdMedlem sedan jan. 2001795 inlägg
#4

Då verkar jag vara på väg åt rätt håll. Tack för hjälpen. :)

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)