Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Dynamische Arrays in Structs?

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
11.08.2003, 13:59 Uhr
~OBI
Gast


Habe folgendes Problem:

struct Wert
{
float wert1[][];
float wert2[][];
}

Da je nach numerischer Fragestellung, die Arrays mal sehr groß bzw. sehr klein sind, möchte ich die Größe nicht von
Anfang an festlegen.
Wie kann ich sowas umsetzen, und wie spreche ich die Arrays im Programm dann an?

Schonmal Danke!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.08.2003, 14:07 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


schreib dir ne klasse in der du im konstruktor den spass anlegst und im destruktor wieder freigibst

in etwa so

C++:
class myClass{

public:
     myClass(int x1, int y1, int x2, int y2);
    ~myClass();
    //noch ein paar getter und setter einfuegen

private:
double **array1,**array2;

};

myClass::myClass(int x1, ,int y1 ,int x2, int y2){
int i;
array1 = new double*[y1];
for(i=0;i<y1;i++) array1[i]= new double[x1];

array2 = new double*[y2];
for(i=0;i<y2;i++) array1[i]= new double[x2];

}

myClass::~myClass(){
int i;
for(i=0;i<y1;i++) delete [] array1[i];
delete [] array1;

for(i=0;i<y2;i++) delete [] array2[i];
delete [] array2;
}




Gruss Heiko
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 11.08.2003 um 14:41 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.08.2003, 14:11 Uhr
~OBI
Gast


Hmm. Danke für die Hilfe, ich wollt aber eigentlich keine Klasse mehr in das Programm einfügen.
Gibt es keine Klassen-unabhängige Lösung?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.08.2003, 14:13 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


klar kannst du auch ohne klasse machen, aber dann musst du ausserhalb den speicher anelgen und wieder freigeben, was ja eher ätzend ist. DIe Klasse kapselt das ganze und nimmt dir diese arbeit ab
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
11.08.2003, 14:16 Uhr
0xdeadbeef
Gott
(Operator)


Wenn du keine Klasse benutzen willst, musst du das Speichermanagement von Hand machen - und vertrau mir, das willst du nicht. Speicherlecks sind nicht komisch, und die lassen sich auf die Art nur schwer umgehen. Ich würde dir allerdings dazu raten, ein paar Operatoren zu überladen, um das Handling der Klasse intuitiver zu machen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
11.08.2003, 14:16 Uhr
~OBI
Gast


Ich will dich ja nicht nerven, aber könntest du mir vielleicht noch mal ein Code-Bsp.
zur Klassenunabhängigen Lösung schreiben=
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
11.08.2003, 14:29 Uhr
~OBI
Gast


Habe mir das jetzt nochmal angesehen, und werde jetzt die vorgeschlagene Klasse nutzen.

Danke
 
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: