webForumDet fria alternativet

Dynamisk array

6 svar · 337 visningar · startad av Alpha II

Alpha IIMedlem sedan maj 20002 993 inlägg
#1

Skapar jag en dynamisk array så här?

int * minArray = new int [100];

Hur får jag reda på storleken?

fungerar det att skriva sizeof minArray?

Jag ha sakapat en ganksa stor array på detta sättet och när jag koller hur stor den är så är den 4 bytes...

Marcus EMedlem sedan maj 20021 466 inlägg
#2

Re: Dynamisk array

>>Skapar jag en dynamisk array så här?
>>int * minArray = new int [100];
Ja.

>>Hur får jag reda på storleken?
Det får du inte.

>>fungerar det att skriva sizeof minArray?
Nej, sizeof returnerar storleken på pekaren, 4 bytes.

Du får istället lagra storleken i en egen variabel.

Alpha IIMedlem sedan maj 20002 993 inlägg
#3

Så om jag ska skriva den till en fil måste jag själv räkna ut storleken?

BeatboxMedlem sedan okt. 20013 217 inlägg
#4

Ett alternativ är ju att använda en vector :

vector<int> minArray;

minArray.push_back(56);
minArray.pusch_back(446);

int i = minArray.size();

i kommer att ha värdet 2.

PeWMedlem sedan juni 200010 432 inlägg
#5

Så om jag ska skriva den till en fil måste jag själv räkna ut storleken?

Om du har för avsikt att ge din array extra funktionalitet kan det vara läge att göra en klass som huserar din array. I den klassen kan du ju t.ex peta in storlek, operatoröverlagring m.m som gör att din array fungerar som du tänkt.. och kan direkt kopplas till en fil :)

developerMedlem sedan aug. 2001458 inlägg
#6

I Windows-miljö finns funktionen _msize() som du skulle kunna använda. Dock är det något jag starkt avråder från, de förslag du redan fått är mycket bättre.

Alpha IIMedlem sedan maj 20002 993 inlägg
#7

PeW skrev:

Så om jag ska skriva den till en fil måste jag själv räkna ut storleken?

Om du har för avsikt att ge din array extra funktionalitet kan det vara läge att göra en klass som huserar din array. I den klassen kan du ju t.ex peta in storlek, operatoröverlagring m.m som gör att din array fungerar som du tänkt.. och kan direkt kopplas till en fil :)

Kanske lite overkill med tanke på att programmet ska ladda in 2 bilder (raw) och spara dem som en fil.

Och arrayen ska hålla reda på datan från filerna.

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