Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Variable zur laufzeit

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 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ]
000
09.08.2003, 13:31 Uhr
~CPlusPlus
Gast


Hallo ich hab ein kleines Problem.

Wie kann ich zur Laufzeit Arrays vom Typ char erstellen?

Ich habe eine integer Variable "iCounter" diese wird in einer Schleife hochgezählt. Nach der beendigung der Schleife "iCounter" zum Beispiel den Wert 3 hat sollen 3 Arrays vom Typ char erstellt werden.

Kann mir vielleicht jemand helfen??#
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.08.2003, 14:32 Uhr
Pablo
Supertux
(Operator)


Das geht ja gar nicht, außer du benutzt C99. In C/C++ kannst du nicht ein Array mit Variable Länge deklarieren.


C++:
int main()
{
    int c;
    cin >> c;
    char t[c];
}


Das geht gar nicht. Wenn du aber eine Variable Länge haben willst, dann benutze Vektoren (vectors), wenn du in C++ arbeitest.


edit by FloSoft: i durch c ersetzt (hattest einmal i und dann wieder c)
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 09.08.2003 um 14:52 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.08.2003, 14:54 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


in c++ gibts halt folgende möglichkeit:


C++:
int main()
{
    int c;
    cin >> c;
    char *t = new char[c]; // Array der Größe c erstellen

    // mit t irgendwas machen

    delete[] t; // speicher freigeben
}


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.08.2003, 14:59 Uhr
Pablo
Supertux
(Operator)


Aja stimmt. Ich hab an t[ i ] gedacht, weil ich immer die For-Schleifen mit Zähler i mache. Deshalb hab ich i und nicht c geschrieben!


Ich hab das mit new vergessen, so funktioniert es schon, aber du musst nie vergessen, das Array am Schluss zu löschen, sonst (wenn ich mich nicht irre) bleibt das Array im RAM gepseichert, auch wenn das Programm nicht mehr läuft.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.08.2003, 15:04 Uhr
Tommix



Hallo,
die Frage ist nicht so gant 100% klar, Du willst mehrere array vom Typ char?
Dann ist das Prinzip so:

C++:
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    char** arrays = new char*[n];

    if (n > 0)
    {
        arrays[0] = new char[3];
        
        arrays[0][0] = ';';
        arrays[0][1] = ')';
        arrays[0][2] = 0;

        cout << arrays[1] << endl;
    
        delete[] array[0];
    }

    delete[] arrays;
    return 0;
}


In C kannst Du sowas mit malloc machen aber aus Deinem Nick schliesse ich, das wirst Du nicht wollen.
@Pablo: Scheinst gerade 32 Bitburger intus zu haben Behaupte doch nicht dauernd: Dies und das geht nicht, nur weil Du nicht weisst, wie es geht!
@Flosoft: Warst mal wieder schneller , aber wenn man die Frage genau liest, will er wohl mehrere Arrays.

Gruss, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.08.2003, 15:13 Uhr
Pablo
Supertux
(Operator)


@Tommix? Wieso deklarierst du nur 3 Arrays? (arrays[0] = new char[3]; )

So wie ich die Frage verstanden habe, wäre das nicht ganz richtig. Denn die Anzahl von Arrays von iCounter abhängt, d.h, wenn iCounter 3 ist, dann sollen 3 Arrays erstellt werden. Das heißt für mich, wenn iCounter 4 ist, dann sollen 4 Arrays erstellt werden.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 09.08.2003 um 15:14 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
09.08.2003, 15:23 Uhr
Tommix



cin >> n;
char** arrays = new char*[n];

Der Rest ist nur ein Beispiel - Was mit den einzelnen Arrays gemacht werden soll, geht aus der Frage ja nicht hervor.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
09.08.2003, 15:31 Uhr
Pablo
Supertux
(Operator)


Ups sorry! Diesen Teil hab ich übersehen! Dann macht es doch Sinn!
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
09.08.2003, 20:14 Uhr
~CPlusPlus
Gast


Danke für die antworten ich werd mal das was Tommix geschrieben hat ausprobieren.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
09.08.2003, 22:35 Uhr
~Anfänger00
Gast


Hallo,
ich hab ne Fage zu diesem "doppelpointer" (wenn man das überhaupt so nenne darf) Was ist der Unterschied zwischen typ* variable und typ** variable?
gibt es dann auch sowas wie nen dre-fach pointer 4fach,usw..?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ]     [ 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: