Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » array beliebiger größe

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
24.10.2003, 16:27 Uhr
geissbock



ich suche soetwas wie size_t. bloß dies bezieht sich ja nur auf int werte. gibt es sowas, damit ich ein 'char feld[]' nur die größe belegt die es auch brauch?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.10.2003, 17:09 Uhr
(un)wissender
Niveauwart


Dafür gibt es new oder malloc.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.10.2003, 17:59 Uhr
Pablo
Supertux
(Operator)


Nach C99 sollte auch schon so gehen

C++:
int i=9;
int z[i];



Aber ich mache das nicht, ich krieg immer Warnung.

new benutzt man unter C++ und man gibt den Speicher mit delete [] frei.
malloc ist C und man gibt mit free den Speicher frei.

Sieh in die FAQ
malloc&co
Die Sache mit den Rückgabewerten
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.10.2003, 22:58 Uhr
kronos
Quotenfisch
(Operator)


wie sieht das eigentlich bei mehrdimensionalen arrays aus?
also:

C++:
char my_array[x][y];

muss ich da für 0 bis x jeweils malloc(y) zuweisen, oder gibt's eine lösung à la:

C++:
my_array=malloc(x*y);

das es so allerdings nicht funktionert weiß ich...
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
24.10.2003, 23:17 Uhr
Pablo
Supertux
(Operator)


Für C oder C++? Mit new oder malloc?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.10.2003, 00:13 Uhr
kronos
Quotenfisch
(Operator)


C -> malloc
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
25.10.2003, 00:16 Uhr
Pablo
Supertux
(Operator)


ja, du musst bei jedem x der ersten Dimension neu malloc aufrufen:

Guck mal hier
www.fun-soft.de/showtopic.php?threadid=4342&time=1067033735

Generic Code by @beefy ""

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);
}


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 25.10.2003 um 00:19 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
25.10.2003, 09:17 Uhr
(un)wissender
Niveauwart


Oder mit komplexem Feldzugriff:

C++:
char * Two_Dim_Feld = malloc(x_length * y_length * sizeof(char));//Initialisierung
Two_Dim_Feld[x_length * y * sizeof(char) + x *sizeof(char)]; //Zugriff


--
Wer früher stirbt ist länger tot.
 
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: