Avatar billede trp79 Nybegynder
11. september 2002 - 13:56 Der er 5 kommentarer og
1 løsning

lægden af et array i c

Jeg vil gerne tælle hvor mange elementer der er i arrayet a
Hvordan gøres dette? jeg ved at der er en funktion til dette ligesom i java... men hvad hedder den i c?
Avatar billede bongobride Nybegynder
11. september 2002 - 13:58 #1
count?

count ($blabla)
Avatar billede trp79 Nybegynder
11. september 2002 - 14:03 #2
nope...
Avatar billede mbulow Nybegynder
11. september 2002 - 15:22 #3
Hvis du har oprettet et array, f.eks. sådan her:
  int a[100];
kan du finde ud af hvor mange elementer der er plads til i arrayet med:
  sizeof(a) / sizeof(a[0])



Hvis du derimod har oprettet arrayet dynamisk med new eller alloc er det et helt andet problem:
  int *a = (int*)alloc(400); //C
eller
  int *a = new int[100];    //C++
Her tror jeg faktisk ikke der er andre muligheder end at du selv holder styr på hvor stort arrayet er.



Mener du at du vil finde ud af at du f.eks. har fyldt noget i 42 ud af 100 celler i et array, KAN det blive lidt besværligt:

Enten reserverer du en bestemt værdi, som du fylder i de celler som er tomme, hvilket selvfølgelig betyder at denne værdi IKKE kan bruges som reel data i arrayet. Det er selvfølgelig et problem, hvis du f.eks. har et array af int's, og du ikke har en bestemt værdi du kan reservere.

Hvis ikke det er en brugbar løsning, kan du oprette et bool-array af samme længde som det primære array, og sætter de entelte celler i dette til true eller false, afhængigt af om der er data i cellen med samme index i det 'rigtige' array.

For begge tilfælde gennemløber du arrayet (f.eks. med en for-løkke), og undersøger hvor mange celler der indeholde data.
Avatar billede trp79 Nybegynder
12. september 2002 - 14:13 #4
takker, den er fjong:o)
Avatar billede soepro Nybegynder
16. september 2002 - 08:58 #5
trp79 >> java indbyggede length() funktion er netop opnået ved at der sammen med en hvilken som helst tabel også oprettes en member-variabel med antallet af elementer i tabellen. (Men der er "compileren" der gør det.) Hvis du skal opnå det samme i C++, skal du som mbulow er inde på, selv lave en tabel-klasse - eller simpelthen bruge STL (Standard Template Library) vector typen:

vector<int> a[100];

STL-klassen vector har en length() funktion, som du kender den fra JAVA. (Jeg er ikke helt sikker på syntaksen i d.o. - men du kan sikkert finde den rigtige fra on-line hjælpen til din C++ compiler.)
Avatar billede trp79 Nybegynder
16. september 2002 - 11:22 #6
okey det fatter jeg så ikke så meget af! Men det kommer nok :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester