Mød en af Nordens fremmeste eksperter i adfærdsdesign – Morten Münster, der bl.a. har skrevet ” Jytte fra marketing er desværre gået for i dag” – på Computerworld Cloud & AI Festival.
Eller mener du at navnet ikke er tilgængeligt hvor du skal bruge størrelsen? Men hvis du får arrayet ud af din funktion, kan du jo også få størrelsen med ud som en int.
Ellers kan du regne det ud selv: sizeof(int)*8192 men det er et hack, da du nu skal rette 2 steder, hvis det ændrer sig.
Men hvis du erklærer dit array på den måde i din funktion, så ligger det på stakken, og kan ikke returneres af funktionen - stakken kan blive overskrevet af noget andet.
Synes godt om
Slettet bruger
20. december 2005 - 14:22#6
jeg får Error: test undeclared her (not in a function)
Men kan jeg ikke bare skrive et eller andet som fortæller den at den skal tage størrelsen af et array på 8192?
Det er rigtigt hvad arne_v siger da en int (som regel) fylder 4 bytes. Så: int test[8192]; sizeof(test); // er størrelsen I BYTES på test sizeof(test)/sizeof(int); // er antal integers (8192)
Synes godt om
Slettet bruger
20. december 2005 - 15:41#11
vil det tage lang tid at fylde et array på 8k med tal?? Snakker vi ikke her om ms?? Det er en 60MHz maskine....
sizeof(8192) er der samme som sizeof(int) da 8192 er en int I både foo og bar får man sizeof(int *), hvilket viser at man ikke kan overføre et array til en funktion (der overføres en pointer) og man kan ikke vide hvor meget hukommelse der er allokeret med new (eller malloc).
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.