Anzeige

C Array Grösse

#1
Hallo,
wie kann ich die Grösse von folgende Funktion ermitteln?

C:
int func(int arr[], int dim){
    int size2 = sizeof arr;
}
 

cwriter

Erfahrenes Mitglied
#2
wie kann ich die Grösse von folgende Funktion ermitteln?
Die Frage ist so ungenau, dass es einige verschiedene Antworten gibt.
1) Die Funktion ist konstant und der Compiler kann sie durch sizeof(void) ersetzen.
2) Falls der Compiler nicht optimiert, sind 2 Register für den Aufruf erforderlich, und der Code ist etwa 6-10 Bytes lang (x86), movabs und ret. /EDIT: Wie du das genau herausfindest: Mit dem Disassembler deines Vertrauens (z.B. GDB). Aber weshalb willst du das wissen?

Falls du die Grösse in Bytes des Arrays haben willst, ist die Formel schlicht sizeof(int)*dim, sofern dim die Anzahl Elemente des Arrays ist.

Gruss
cwriter
 
Zuletzt bearbeitet:
Anzeige

Neue Beiträge

Anzeige