#include <stdio.h> int vectorsize(double vec[]) { return sizeof(vec); } int main() { double vector3[] = {2.5, 5.5, 4.5, 7.7, 8.3, 7.9}; int size = vectorsize(vector3); printf("size = %d\n", size); return 0; } Warum hat das Ergebnis den Wert 4, und nicht 6 ??
sizeof liefert die grösse des datentyps zurück. in diesem fall ist es double welcher 4 byte gross ist
Der sizeof-Operator liefert die Größe eines Datentyps in Vielfachen von sizeof(char) zurück. In deinem Fall sind das 4, was den 4 Byte = 32 Bit des Typs double entspricht. sizeof liefert dir nicht die Länge (Anzahl der Elemente) deines Vektors zurück. Grüße Andreas
vielleicht schrieb: > sizeof liefert die grösse des datentyps zurück. in diesem fall ist es > double welcher 4 byte gross ist Fast. Der Wert ist 4, weil auf seinem System ein Pointer 4 Bytes Länge hat. Auch wenn man schreibt int vectorsize(double vec[]) so ist das nichts anderes als eine glorifizierte Verschleierung der Tatsache, dass vec hier nur ein Pointer ist. Und daher liefert sizeof auch nur die Länge eines Pointers.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.