Hvordan bestemmer jeg størrelsen af mit array i C?
Hvordan bestemmer jeg størrelsen af mit array i C?
Det vil sige, hvor mange elementer arrayet kan indeholde?
894
3
Hvordan bestemmer jeg størrelsen af mit array i C?
Det vil sige, hvor mange elementer arrayet kan indeholde?
Resumé:
Fuldt svar:
For at bestemme størrelsen af dit array i bytes kan du bruge
sizeof
. operatoren:På min computer er ints 4 bytes lange, så n er 68.
For at bestemme antallet af elementer i arrayet kan vi dividere arrayets samlede størrelse med størrelsen af arrayelementet. Du kan gøre dette med typen, som her:
og få det korrekte svar (68 / 4 = 17), men hvis typen af
a
ændrede sig, ville du få en ubehagelig fejl, hvis du glemte at ændresizeof(int)
også.Så den foretrukne divisor er
sizeof(a[0])
, størrelsen af nulte element i arrayet.En anden fordel er, at du nu nemt kan parametrisere array-navnet i en makro og få:
Det er værd at bemærke, at
sizeof
ikke hjælper, når der er tale om en array-værdi, der er henfaldet til en pointer: selvom den peger på starten af et array, er den for compileren det samme som en pointer til et enkelt element i arrayet. En pointer husker ikke "noget andet om det array, der blev brugt til at initialisere den.