webForumDet fria alternativet

Skapa variabelt antal struct

C/C++

3 svar · 227 visningar · startad av SDCd

Medlem sedan jan. 2001795 inlägg
Frågan#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?

Medlem 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?

Medlem 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;
Medlem sedan jan. 2001795 inlägg
#4

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

253 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)