Dynamische Felder Kopiern

XeoX

Mitglied
Hallo
Ich habe folgendes Probelem wenn ich die das Dynamischefeld Kopieren möchte mach ich das mit Zeigern nur wird das Feld verändert von dem ich Kopiere und ich sehe den Fehler nicht!

Vielleicht kann mir einer Helfen!

C++:
void Stack_c::StackCopy(const Stack_c& st) {
	StackGroesse = st.StackGroesse;
	StackTop = st.StackTop;
	BlockGroesse = st.BlockGroesse;
  StackBereich = new double [(double) StackGroesse * BlockGroesse];
  double *ptrrun = (double*)StackBereich,
  			 *ptrend = (double*)st.StackBereich + StackTop,
         *ptrstart = (double*)st.StackBereich;
	for (;ptrstart < ptrend; ptrstart++, ptrrun++)
		*ptrrun = *ptrstart;
}



Danke

Gruß XeoX
 
Danke, das Programm stück ist komplett richtig! Fehler lag an anderer Stelle!

gruß XeoX!
 
Hmm aber unschön ist es dennoch ...
C++:
void Stack_c::StackCopy(Stack_c const& st) 
{
     StackGroesse = st.StackGroesse;
     StackTop = st.StackTop;
     BlockGroesse = st.BlockGroesse;
     StackBereich = new double [(double) StackGroesse * BlockGroesse]; // hier castest du explizit nach double, was daraufhin aber implizit in std::size_t wieder umgecastet wird.
     std::copy(st.StackBereich, stStackBereich + st.StackTop, StackBereich);
}
wobei ich mir noch nicht ganz sicher bin was du mit deiner BlockGroesse genau meinst ... aber vor allem ist mir das etwas merkwürdig vorgekommen, was du da als Array-Size angibst!
 
Schön ist was anderes gebe ich zu, war nur vorabentwurf!
Es Geht darum einen eigenen Stack zu Progen, wenn der Stack voll ist wird er um BlockGroesse erweitert wird!

Und das Double ich habe Borland und habe die Warnungen alle raus gemacht und er will das mit Double gecastet haben damit die Medungen weg gehen! Nicht meine Idee!
StackGroesse ist der Multiplikator für die, BlockGroesse sind alles unsigned long int!

Danke!
XeoX
 

Neue Beiträge

Zurück