Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Der beste Weg Arrays zu erstellen?

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 ] > 2 <
010
30.09.2003, 09:27 Uhr
0xdeadbeef
Gott
(Operator)


Das malloc-**-Konstrukt hat noch den Vorteil, dass du nicht-rechteckige Arrays bauen kannst, was in bestimmten Situationen Speicher spart, und dass du einfach Zeilen vertauschen kannst, was in bestimmten Zusammenhängen (e.g. Matrix-Operationen) Rechenzeit spart.

Im Endeffekt hängt es vom konkreten Problem ab, was gerade sinnvoller ist. Wenn allerdings kein Flaschenhals zu erwarten ist, würde ich persönlich auf die lesbarere Variante setzen und das zweidimensionale malloc vorziehen. Allerdings würde ich das Anfordern und freigeben des Speichers in Subroutinen der Art:

C++:
typ **malloc_2d_typ_array(size_t x, size_t y) {
  typ **ret;
  size_t i;
  ret = (typ**) malloc(sizeof(typ*) * x);
  for(i = 0; i < x; ++i)
    ret[i] = (typ*) malloc(sizeof(typ) * y);
  return ret;
}

void free_2d_typ_array(typ **feld, size_t x)
{
  size_t i;
  for(i = 0; i < x; ++i)
    free((void*) feld[i]);
  free((void*) feld);
}


ebenfalls aus Gründen der Lesbarkeit.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
30.09.2003, 12:10 Uhr
~Hötz
Gast


@Pablo
ich hab dein Beispiel

C++:
typ (*varname)[BEKANNTE_LAENGE];


auch mal kompiliert bin aber nicht wirklich schlau geworden, was denn varname eigentlich genau ist und was man sinnvollses damit machen kann. Kann hier irgendjemand sagen was das da oben ist? Ist varname ein Pointer auf einen array vom Typ typ, oder wie???
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ 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: