Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Mehrdimensionales Array at run time mit Variablen initialisieren

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
19.09.2002, 18:25 Uhr
~Hansi
Gast


Hallo!

Ich versuche mich gerade an einer Bildverarbeitung. Dazu habe ich mir eine
Klasse mit diversen Funktionen dazu geschrieben. Allerdings möchte ich das
Programm auf verschiedene Bildgrößen erweitern. Im Moment wird die Größe im
Konstruktor festgelegt. Ich würde das aber gerne erst später beim Laden des
Bildes tun. Wei schaffe ich es nun beim Laden den Speicher zu reservieren
und zu befüllen?

Gruß
Hansi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.09.2002, 11:20 Uhr
Tobi



Hi!

ich würde das ganze einfach dynamisch auf dem Heap erzeugen!

Beispiel:

Code:
public:
...
DeineKlasse* array;
...

unsigned int anzahl=KlassenBenoetigt();
array=new DeineKlasse [anzahl];

for(unsigned int current=0;current<anzahl;current++)
{
array[current].SetzeWerte(...);
}


--
Mit Computern können wir Probleme lösen die wir ohne sie gar nicht erst hätten!

mfg

Tobi

Dieser Post wurde am 22.09.2002 um 11:21 Uhr von Tobi editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.09.2002, 14:28 Uhr
~Hansi
Gast


Hi Tobi,

danke für Deinen Tip.
Ich habe mir Deinen Beispielcode angesehen. Allerdings, soweit ich das verstanden habe geht das ganze nur für ein Eindimensionales Feld?! Wie komme ich auf die Mehrdimensionalität?

Gruß
Hansi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.09.2002, 16:11 Uhr
Tobi



Dafür kenn ich jetzt keinen Trick, aber ich würd mir halt ein array struct erstellen:


Code:

#include "DeineKlasse.h"
struct MyArray{
DeineKlasse* array;
};



und dann ein array dieser structs anlegen und deren größe festlegen


Code:
MyArray* array=new array[sizex];

for(int x=0;x<sizex;x++)
{
array[x].array=new DeineKlasse[sizey];
}



zugriff:

array[x].array[y].TuWas(...);



müsste funktieren
--
Mit Computern können wir Probleme lösen die wir ohne sie gar nicht erst hätten!

mfg

Tobi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.09.2002, 19:51 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


oder du nimmst ne richtige klasse:


C++:
#include "DeineKlasse.h"
class CMeineKlasse{
    DeineKlasse* array;
    CMeineKlasse(int iSize)
    {
        Initialisiere(iSize)
    };
    void Initialisiere(int iSize)
    {
        array = new DeineKlasse[iSize];
    };
};




und dann machst du:


C++:
CMeineKlasse* array = new CMeineKlasse[sizex](iSize);



(P.S. nicht getestet, müsste aber gehen )
--
class God : public ChuckNorris { };

Dieser Post wurde am 25.09.2002 um 19:51 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
30.09.2002, 10:56 Uhr
~Hansi
Gast


Hi,

ich bin zwar noch nicht zum Testen gekommen, aber trotzdem vielen Dank für Eure Tips.

Gruß
Hansi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


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: