KingJoshii1000
Lieutenant
- Registriert
- Apr. 2010
- Beiträge
- 879
Hallo,
ich bin aktuell dabei eine Übungsaufgabe bezüglich Vektoren und Arrays zu lösen,dabei soll ein C-Style String in einen zuvor reservierten Bereich auf dem Freispeicher kopiert werden und es sollen keine Funktionen der STL verwendet werden. Zugleich ist nur der Dereferenzierungsoperator (*) gestattet, nicht der Indexierungsoperator.
Mein Code:
Soweit funktioniert der Code auch wie gewünscht, jedoch ab der Stelle wo der Speicher für char s reserviert wird hat dieser den Wert "0x0058f320 "ÍÍÍÍÍÍÍÍÍÍýýýý««««««««îþ"". Der Code überschreibt die "Í", aber "ýýýý««««««««îþ" bleibt. Der Pointer Temp zeigt nun auf "0x007df320 "TESTSTRINGýýýý««««««««îþ"". Wie kann ich das vermeiden, bzw. wo genau liegt das Problem? Würde mich über Kritik (sowohl positive als auch negative) freuen, möchte mich schließlich verbessern.
Mit freundlichen Grüßen
ich bin aktuell dabei eine Übungsaufgabe bezüglich Vektoren und Arrays zu lösen,dabei soll ein C-Style String in einen zuvor reservierten Bereich auf dem Freispeicher kopiert werden und es sollen keine Funktionen der STL verwendet werden. Zugleich ist nur der Dereferenzierungsoperator (*) gestattet, nicht der Indexierungsoperator.
Mein Code:
Code:
char* strup(const char* v){
int size = 0;
for (int i = 0; i > -1; ++i){
if (*v == NULL){
size = i;
break;
}
++v;
}
char* s = new char[size];
v -= size;
for (int i = 0; i < size; ++i){
*s = *v;
++s;
++v;
}
s -= size;
return s;
}
int main(int args_size, char** argc){
char test[] = "TESTSTRING";
char* temp = strup(test);
cout << *temp << endl; //Gibt den ersten Buchstaben T aus
keep_window_open();
}
Mit freundlichen Grüßen
Zuletzt bearbeitet: