 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
M. Kalthoff Guest
|
Posted: Wed Jun 01, 2005 5:29 am Post subject: new mehrdimensional |
|
|
servus,
ich versuche mal ein problem zu schildern:
ich brauche ein 2d-array. und zwar in
sämtlichen memberfunktionen.
wie kann ich das 2d-array nun gebrauchsfertig machen?
bisher wehrt es sich erfolgreich
gegen sämtliche lese- und schreibzugriffe,
und das wohl mit recht.
*new* mag 2 mal '[]' anscheinend nicht.
wäre nett wenn mir da jemand mitteilen
würde wie man das machen könnte/sollte.
thx
matze
---------------------------------------
//hier nochmal die ungefähre situation
class View{
char XXX[80][80];
public:
View();
~View();
void show();
};
View::View(){
char XXX = new char[80][80]; //funzt nich
}
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Markus Pesti Guest
|
Posted: Wed Jun 01, 2005 10:10 am Post subject: Re: new mehrdimensional |
|
|
char XXX[80][80]; ist ja schon statisch. Wozu dann noch new?
Vieleicht meinst du:
char** xxx = new char*[80];
for(int i=0; i<80; i++)
xxx[i] = new char[80];
Markus
M. Kalthoff wrote:
| Quote: | servus,
ich versuche mal ein problem zu schildern:
ich brauche ein 2d-array. und zwar in
sämtlichen memberfunktionen.
wie kann ich das 2d-array nun gebrauchsfertig machen?
bisher wehrt es sich erfolgreich
gegen sämtliche lese- und schreibzugriffe,
und das wohl mit recht.
*new* mag 2 mal '[]' anscheinend nicht.
wäre nett wenn mir da jemand mitteilen
würde wie man das machen könnte/sollte.
thx
matze
---------------------------------------
//hier nochmal die ungefähre situation
class View{
char XXX[80][80];
public:
View();
~View();
void show();
};
View::View(){
char XXX = new char[80][80]; //funzt nich
}
|
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Hendrik Belitz Guest
|
Posted: Wed Jun 01, 2005 10:32 am Post subject: Re: new mehrdimensional |
|
|
M. Kalthoff wrote:
| Quote: | servus,
ich versuche mal ein problem zu schildern:
ich brauche ein 2d-array. und zwar in
sämtlichen memberfunktionen.
wie kann ich das 2d-array nun gebrauchsfertig machen?
bisher wehrt es sich erfolgreich
gegen sämtliche lese- und schreibzugriffe,
und das wohl mit recht.
*new* mag 2 mal '[]' anscheinend nicht.
|
Nein, das darf es auch nicht.
| Quote: | wäre nett wenn mir da jemand mitteilen
würde wie man das machen könnte/sollte.
|
Wenn's dynamisch sein soll, dann nimm einen
std::vector<std::vector
| Quote: | class View{
char XXX[80][80]; <================ (1)
public:
View();
~View();
void show();
};
View::View(){
char XXX = new char[80][80]; //funzt nich <============= (2)
}
|
Warum hast Du ein fertiges Array als Member (1) und versuchst dann, dieses
Member mit new nochmals zu allokieren (2) ?
--
- Abort, Retry, Fthagn? -
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Rolf Magnus Guest
|
Posted: Wed Jun 01, 2005 11:12 am Post subject: Re: new mehrdimensional |
|
|
M. Kalthoff wrote:
| Quote: | servus,
ich versuche mal ein problem zu schildern:
ich brauche ein 2d-array. und zwar in
sämtlichen memberfunktionen.
wie kann ich das 2d-array nun gebrauchsfertig machen?
|
Kommt drauf an. Da es eigentlich keine 2D-Arrays gibt, kommt es darauf an,
wie du es genau umsetzen willst.
| Quote: | bisher wehrt es sich erfolgreich
gegen sämtliche lese- und schreibzugriffe,
und das wohl mit recht.
*new* mag 2 mal '[]' anscheinend nicht.
wäre nett wenn mir da jemand mitteilen
würde wie man das machen könnte/sollte.
thx
matze
---------------------------------------
//hier nochmal die ungefähre situation
class View{
char XXX[80][80];
|
Das ist bereits ein gebrauhsfertiges vollständiges Array aus 80 Arrays, von
denen jedes 80 char enthält.
| Quote: | public:
View();
~View();
void show();
};
View::View(){
char XXX = new char[80][80]; //funzt nich
|
Hier erzeugst du lokal im Konstruktor einen neue Variable von Typ char.
Diese initialisierst du mit dem Zeiger!, den new zurückgibt. Diese
Operation ergibt so keinen Sinn, und sie hat auch nichts mit dem Member XXX
zu tun.
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Karl Heinz Buchegger Guest
|
Posted: Wed Jun 01, 2005 11:35 am Post subject: Re: new mehrdimensional |
|
|
"M. Kalthoff" wrote:
| Quote: |
servus,
ich versuche mal ein problem zu schildern:
ich brauche ein 2d-array. und zwar in
sämtlichen memberfunktionen.
wie kann ich das 2d-array nun gebrauchsfertig machen?
|
Ist zwar auf English, aber schau dir mal folgendes an
http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.16
das ist aus der comp.lang.c++ FAQ, die im uebrigen sehr empfehlenswert ist.
--
Karl Heinz Buchegger
[email]kbuchegg (AT) gascad (DOT) at[/email]
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
m. hartberg Guest
|
Posted: Wed Jun 01, 2005 5:03 pm Post subject: Re: new mehrdimensional |
|
|
danke erstmal für eure antworten.
| Quote: | View::View(){
char XXX = new char[80][80]; //funzt nich
}
|
hier hab ich mich selbstverständlich verschrieben.
das 'char' vorm 'XXX' gehört da natürlich überhaupt
nich hin. is mir schon direkt nach dem posten auf-
gefallen. ich konnt's nur nich verbessern weil's
halt schon seine zeit gedauert hat bis der post ankam.
aber egal.
das problem ist halt, dass es zu einer "access violation"
kommt sobald ich irgendwo in XXX was reinschreiben will.
der debugger zeigt mir XXX korrekt an. allerdings sind
die adressen der 1. dim halt alle in dem style "0xcccccccc".
die 2-dim enthält "Error: expression can not be evaluated"
das heisst für mich eigentlich, dass es das array zwar gibt,
der speicher aber nich richtig allokiert wurde, oder so.
deshalb dacht ich, ich müsste die nu erstma mit 'new'
empfangsbereit machen.
naja, ich muss es halt irgendwie mit diesem 2-dim-array
hinbekommen. mir fallen durchaus wege ein das zu umgehen,
aber die aufgabe gibt es nunmal so vor.
thx.
matze
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Horst Kraemer Guest
|
Posted: Wed Jun 01, 2005 8:38 pm Post subject: Re: new mehrdimensional |
|
|
"M. Kalthoff" <m.kalt (AT) web (DOT) de> wrote:
| Quote: | servus,
ich versuche mal ein problem zu schildern:
ich brauche ein 2d-array. und zwar in
sämtlichen memberfunktionen.
wie kann ich das 2d-array nun gebrauchsfertig machen?
bisher wehrt es sich erfolgreich
gegen sämtliche lese- und schreibzugriffe,
und das wohl mit recht.
*new* mag 2 mal '[]' anscheinend nicht.
wäre nett wenn mir da jemand mitteilen
würde wie man das machen könnte/sollte.
thx
matze
---------------------------------------
//hier nochmal die ungefähre situation
class View{
char XXX[80][80];
public:
View();
~View();
void show();
};
View::View(){
char XXX = new char[80][80]; //funzt nich
}
|
Ich kann Dein Problem nicht erkennen. Das array ist doch vorhanden und
kann verwendet werden. Was versuchst Du denn, mit dem Array
anzustellen?
#include <iostream>
#include <cstring>
using namespace std;
class View{
char XXX[80][80];
public:
View() {};
~View() {}
void show() { cout << XXX[0] << endl; }
void set() { strcpy(XXX[0],"hallo"); }
};
int main()
{
View v;
v.set();
v.show();
}
--
Horst
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|