fragen zu new und delete
-
Freak_Coder schrieb:
const int BB = 4; char *text = new char[BB]; strncpy(text,"dfdgfhi",BB); delete [] text;nur mal so als Anmerkung:
1. strncpy ist eine scheiß Funktion, die man nicht benutzen will
2. int benutzt man nicht für Größenangaben. Dafür gibt es size_tneomic schrieb:
wie kann strncat() einen pointer auf den endstring geben? wie geht das? normalerweise verschwinden doch die in der funktion erstelleten variablen im nächsten scope oder gibst da nen trick bei?
wovon sprichst du bitte?
-
rüdiger schrieb:
wovon sprichst du bitte?
sry meinte auch strcat()
char bla[]="asdf"; cout<<strncat(bla,"qwer");ausgabe: asdfqwer
edit: ach lol hab gerade selber noch herausgefunden das der pointer auf das neue "bla" zeigt, sry^^ war ne *kategorieblödefragen* frage -.-
-
neomic schrieb:
ausgabe: asdfqwer
format C:
-
camper schrieb:
neomic schrieb:
ausgabe: asdfqwer
format C:
und was willst du mir damit mitteilen?
-
neomic schrieb:
edit: ach lol hab gerade selber noch herausgefunden das der pointer auf das neue "bla" zeigt, sry^^ war ne *kategorieblödefragen* frage -.-
"neue "bla""? Äh, ich glaube du hast Pointer noch nicht so ganz verstanden
-
Doch!
Aber nur wenn ich nüchtern bin

-
rüdiger schrieb:
"neue "bla""? Äh, ich glaube du hast Pointer noch nicht so ganz verstanden
ja bin grad seid 7 tagen dran c++ zu lernen also lass mich fehler machen...
neomic (off) schrieb:
Doch!
Aber nur wenn ich nüchtern bin

fängt man jetzt schon an mich nachzumachen oder was wird das hier?
-
rüdiger schrieb:
1. strncpy ist eine scheiß Funktion, die man nicht benutzen will
Hmmm, wieso, weshalb warum
... Was benutzt man denn, wenn man mit c-array arbeitet ???
-
neomic schrieb:
und was willst du mir damit mitteilen?
Dein Code erzeugt undefiniertes Verhalten. Und das bedeutet, dass alles passieren kann. Wenn du Pech hast, wird dein System dadurch so sehr kompromittiert, dass dir nichts anderes übrig bleibt als zu formatieren. :xmas2:
Freak_Coder schrieb:
Hmmm, wieso, weshalb warum
... Was benutzt man denn, wenn man mit c-array arbeitet ???Eingebaute Arrays kann man immer noch mit Schleifen bzw. mem... bearbeiten. C-Strings sollte man in C++ generell nicht verwenden. Falls man einen solchen für eine Schnittstelle braucht (zB WinAPI), gibt es immer noch Wege, Arrays als solche bereitzustellen. Siehe std::string::c_str().
-
groovemaster schrieb:
Eingebaute Arrays kann man immer noch mit Schleifen bzw. mem... bearbeiten. C-Strings sollte man in C++ generell nicht verwenden. Falls man einen solchen für eine Schnittstelle braucht (zB WinAPI), gibt es immer noch Wege, Arrays als solche bereitzustellen. Siehe std::string::c_str().
Ja, ich weiß das es natürlich bessere Alternativen gibt, als C-Strings.
Mich hatte nur interessiert wieso strncpy "scheiße (<-rüdiger)" ist, außer das man besser std::string benutzen sollte ...