kostenloser Webspace werbefrei: lima-city


Elemente eines Feldes ausgeben

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    philippkern

    Kostenloser Webspace von philippkern

    philippkern hat kostenlosen Webspace.

    Hallo,
    wie kann ich die Anzahl der Elemente in einem Feld berechnen?


    char *leichtwoerter[]={
    "Philipp", "Forelle", "Dorn", "Gipfel", "Schiff"
    };

    Hier sollte es dann 5 ergeben.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. sandrock-jonas

    Kostenloser Webspace von sandrock-jonas

    sandrock-jonas hat kostenlosen Webspace.

    Die Funktion sizeof() sollte dir weiterhelfen. In deinem Fall wäre es etwa so:

    int anzahl;
    anzahl = sizeof(leichtwoerter);
    cout << anzahl;
  4. Autor dieses Themas

    philippkern

    Kostenloser Webspace von philippkern

    philippkern hat kostenlosen Webspace.


    Die Funktion sizeof() sollte dir weiterhelfen. In deinem Fall w&#228;re es etwa so:

    int anzahl;
    anzahl = sizeof(leichtwoerter);
    cout << anzahl;


    Das gibt dann 20 aus.
    Es sind aber in dem Beispiel nur 5 W&ouml;rter?
  5. sizeof(leichtwoerter) gibt die Anzahl der in leichtwoerter reservierten Bytes zur&#252;ck.

    Das ist demnach nicht das, was du suchst sch&#228;tze ich.

    sizeof(leichtewoerter) / sizeof(leichtewoerter[0]) M&#252;sste eigentlich funktionieren.


    Edit:
    Erl&#228;uterung:
    Du erservierst ein Array f&#252;r den Typ Char. Char ist f&#252;r 4 Byte reserviert. Demnach 20/4=5

    Beitrag geändert: 2.12.2007 13:45:38 von adrians
  6. Autor dieses Themas

    philippkern

    Kostenloser Webspace von philippkern

    philippkern hat kostenlosen Webspace.


    sizeof(leichtwoerter) gibt die Anzahl der in leichtwoerter reservierten Bytes zur&#252;ck.

    Das ist demnach nicht das, was du suchst sch&#228;tze ich.

    sizeof(leichtewoerter) / sizeof(leichtewoerter[0]) M&#252;sste eigentlich funktionieren.


    Edit:
    Erl&#228;uterung:
    Du erservierst ein Array f&#252;r den Typ Char. Char ist f&#252;r 4 Byte reserviert. Demnach 20/4=5

    Beitrag ge&auml;ndert: 2.12.2007 13:45:38 von adrians


    Vielen Dank, es funktioniert.
    Zumindest bei den Werten die ich probiert hab. :blah:

    M&uuml;sste theoretisch aber immer funktionieren.
  7. c*********c

    Edit:
    Erl&#228;uterung:
    Du erservierst ein Array f&#252;r den Typ Char. Char ist f&#252;r 4 Byte reserviert. Demnach 20/4=5

    nicht ganz: es wird ein (char)-Pointer-Array mit 5 Zeiger auf 5 separate Zeichenketten erstellt. Da auf einem 32-bit System ein Zeiger eine Gr&#246;sse von 4 Byte (=32 Bit) aufweist, l&#228;sst sich adrians Rechnung nachvollziehen (ein Char ist &#252;brigens nur 1 Byte gross).
  8. *nick* Ich habs eben kurz gefasst und wollte nicht mit Pointern und Zeigern um mich werfen. *zwinker*

    Problematisch wirds &#252;brigens, wenn man Multitype-Typen deklariert. Dann muss man jedes Element einzeln nehmen. *zwinker*
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!