Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Ermitteln der Länge eines Arrays

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.10.2005, 14:27 Uhr
CoderboyPB



Hallo Leute !

Ich habe folgendes Code-Construct geschrieben, in dem es darum geht, INNERHALB der Funktion die Länge eines übergebenen Charcter-Arrays zu ermitteln:


C++:
#include "stdafx.h"
#include <iostream.h>

void msort(char *b)
{
    //int length = 0;
    int length = sizeof(b) / sizeof(b[0]);  // Zeile (*)
    cout << "Länge: " << length << endl;
}

int main(int argc, char* argv[])
{
    char a[] = "SC Paderborn 07";
    msort(a);
    return 0;
}



Als Länge wird aber 4 anstatt 13 oder 14 (weiss jetzt ned genau, aber 4 ist definitiv falsch) ausgegeben.

Packe ich Zeile (*) aber (mit Parameter a) in die main-Funktion dann funktioniert es ...

Aus Gründen des übersichtlicheren Codes möchte ich die Ermittlung der Länge aber gerne in die Funktion übernehmen.

Wer weiß Rat ?

Mfg Mirco
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.10.2005, 14:35 Uhr
ao

(Operator)


Geht so nicht. In msort ist b ein Pointer und kein Array.
Aber für C-Strings (Null-terminierte char-Arrays) gibts die Funktion strlen.
Oder, wenn du schon in C++ programmierst, nimm doch gleich std::string.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.10.2005, 14:48 Uhr
CoderboyPB



Vielen Dank für deine schnelle Antwort, nur leider hilöft sie mir nicht so ganz weiter, da der spätere Algorithmus STRUKTUREN sortieren soll, und die jetzige Funktion mit dem Charcter-Array nur zu Testzwecken dient, um zu testen, ob der MergeSort Algorithmus überhaupt funktioniert ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.10.2005, 15:10 Uhr
ao

(Operator)


Dann musst du die Anzahl der Elemente mit reinreichen:

C++:
void msort(struct s * ps, int n);



Oder - du machst ja C++ - kein C-Array verwenden, sondern einen passenden C++-Container (std::vector oder std::list, je nach Ausprägung).

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: